From: Daniel Stenberg Date: Fri, 22 Aug 2025 11:30:30 +0000 (+0200) Subject: tool_urlglob: handle a zero length glob piece X-Git-Tag: curl-8_16_0~122 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=33572b851e06593ad26af3a957e63e1721173cd1;p=thirdparty%2Fcurl.git tool_urlglob: handle a zero length glob piece Follow-up to 034612cd515f249453a435f3d94b Add test 759 to verify Reported-by: Stanislav Osipov Fixes #18352 Closes #18353 --- diff --git a/src/tool_urlglob.c b/src/tool_urlglob.c index 63d3a7c72a..028520373e 100644 --- a/src/tool_urlglob.c +++ b/src/tool_urlglob.c @@ -142,7 +142,8 @@ static CURLcode glob_set(struct URLGlob *glob, const char **patternp, if(!pat->c.set.elem) return globerror(glob, NULL, 0, CURLE_OUT_OF_MEMORY); - pat->c.set.elem[pat->c.set.size] = strdup(curlx_dyn_ptr(&glob->buf)); + pat->c.set.elem[pat->c.set.size] = strdup(curlx_dyn_ptr(&glob->buf) ? + curlx_dyn_ptr(&glob->buf): ""); if(!pat->c.set.elem[pat->c.set.size]) return globerror(glob, NULL, 0, CURLE_OUT_OF_MEMORY); ++pat->c.set.size; diff --git a/tests/data/Makefile.am b/tests/data/Makefile.am index 3879c370e5..66429a68d8 100644 --- a/tests/data/Makefile.am +++ b/tests/data/Makefile.am @@ -108,7 +108,7 @@ test718 test719 test720 test721 test722 test723 test724 test725 test726 \ test727 test728 test729 test730 test731 test732 test733 test734 test735 \ test736 test737 test738 test739 test740 test741 test742 test743 test744 \ test745 test746 test747 test748 test749 test750 test751 test752 test753 \ -test754 test755 test756 test757 test758 \ +test754 test755 test756 test757 test758 test759 \ test780 test781 test782 test783 test784 test785 test786 test787 test788 \ test789 test790 test791 test792 test793 test794 test795 test796 test797 \ \ diff --git a/tests/data/test759 b/tests/data/test759 new file mode 100644 index 0000000000..755236599e --- /dev/null +++ b/tests/data/test759 @@ -0,0 +1,30 @@ + + + +globbing + + + +# +# Client-side + + +none + + +glob '{,' + + +"{,,,,,,,}" "{," "{,,," + + + +# +# Verify data after the test has been "shot" + +# curl: (3) unmatched brace in URL position 1: + +3 + + +