diff --git a/ruby/ql/lib/codeql/ruby/frameworks/http_clients/NetHttp.qll b/ruby/ql/lib/codeql/ruby/frameworks/http_clients/NetHttp.qll index e09917ae21ab..549ae65bcc09 100644 --- a/ruby/ql/lib/codeql/ruby/frameworks/http_clients/NetHttp.qll +++ b/ruby/ql/lib/codeql/ruby/frameworks/http_clients/NetHttp.qll @@ -54,7 +54,15 @@ class NetHttpRequest extends Http::Client::Request::Range, DataFlow::CallNode { override DataFlow::Node getAUrlPart() { result = request.getArgument(0) or - // Net::HTTP.new(...).get(...) + result = this.getAUrlPartHelper() + } + + /** + * Helper predicate for `getAUrlPart`. + * + * This handles `Net::HTTP.new(...).get(...)` etc. + */ + private DataFlow::Node getAUrlPartHelper() { exists(API::Node new | new = API::getTopLevelMember("Net").getMember("HTTP").getInstance() and requestNode = new.getReturn(_)