From 318cd4f2ee4840a13634bacce462676b40dabe71 Mon Sep 17 00:00:00 2001 From: Daniel Stenberg Date: Tue, 18 Nov 2025 17:01:30 +0100 Subject: [PATCH] lib: error for OOM when extracting URL query Closes #19594 --- lib/imap.c | 6 ++++-- lib/url.c | 4 +++- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/lib/imap.c b/lib/imap.c index d23076a48f..faa595561d 100644 --- a/lib/imap.c +++ b/lib/imap.c @@ -2315,8 +2315,10 @@ static CURLcode imap_parse_url_path(struct Curl_easy *data, and no UID as per RFC-5092 */ if(imap->mailbox && !imap->uid && !imap->mindex) { /* Get the query parameter, URL decoded */ - (void)curl_url_get(data->state.uh, CURLUPART_QUERY, &imap->query, - CURLU_URLDECODE); + CURLUcode uc = curl_url_get(data->state.uh, CURLUPART_QUERY, &imap->query, + CURLU_URLDECODE); + if(uc == CURLUE_OUT_OF_MEMORY) + return CURLE_OUT_OF_MEMORY; } /* Any extra stuff at the end of the URL is an error */ diff --git a/lib/url.c b/lib/url.c index 527d698390..b4069e30f1 100644 --- a/lib/url.c +++ b/lib/url.c @@ -1974,7 +1974,9 @@ static CURLcode parseurlandfillconn(struct Curl_easy *data, conn->remote_port = (unsigned short)port; } - (void)curl_url_get(uh, CURLUPART_QUERY, &data->state.up.query, 0); + uc = curl_url_get(uh, CURLUPART_QUERY, &data->state.up.query, 0); + if(uc && (uc != CURLUE_NO_QUERY)) + return CURLE_OUT_OF_MEMORY; #ifdef USE_IPV6 if(data->set.scope_id) -- 2.47.3