From: Daniel Stenberg Date: Sat, 13 Dec 2025 12:48:59 +0000 (+0100) Subject: tool_urlglob: support globs as long as config line lengths X-Git-Tag: rc-8_18_0-2~15 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=28d27570fa021011b8679344d090772fea49d0d1;p=thirdparty%2Fcurl.git tool_urlglob: support globs as long as config line lengths libcurl supports up to 8MB string inputs, the config file accepts up to 10MB line lengths. It did not make sense to limit the globs to a maximum of one megabyte. Closes #19960 --- diff --git a/src/tool_cfgable.h b/src/tool_cfgable.h index d02635ce24..ae6092076c 100644 --- a/src/tool_cfgable.h +++ b/src/tool_cfgable.h @@ -38,6 +38,8 @@ #endif #endif +#define MAX_CONFIG_LINE_LENGTH (10*1024*1024) + #define checkprefix(a, b) curl_strnequal(b, STRCONST(a)) #define tool_safefree(ptr) \ diff --git a/src/tool_parsecfg.c b/src/tool_parsecfg.c index fd669f96cf..ae206f8d51 100644 --- a/src/tool_parsecfg.c +++ b/src/tool_parsecfg.c @@ -77,8 +77,6 @@ static int unslashquote(const char *line, struct dynbuf *param) return 0; /* ok */ } -#define MAX_CONFIG_LINE_LENGTH (10*1024*1024) - /* return 0 on everything-is-fine, and non-zero otherwise */ ParameterError parseconfig(const char *filename, int max_recursive, char **resolved) diff --git a/src/tool_urlglob.c b/src/tool_urlglob.c index ad2e2de9d6..da073d0393 100644 --- a/src/tool_urlglob.c +++ b/src/tool_urlglob.c @@ -500,7 +500,7 @@ CURLcode glob_url(struct URLGlob *glob, char *url, curl_off_t *urlnum, CURLcode res; memset(glob, 0, sizeof(struct URLGlob)); - curlx_dyn_init(&glob->buf, 1024 * 1024); + curlx_dyn_init(&glob->buf, MAX_CONFIG_LINE_LENGTH); glob->pattern = curlx_malloc(2 * sizeof(struct URLPattern)); if(!glob->pattern) return CURLE_OUT_OF_MEMORY;