]> git.ipfire.org Git - thirdparty/curl.git/commitdiff
tool_urlglob: handle a zero length glob piece
authorDaniel Stenberg <daniel@haxx.se>
Fri, 22 Aug 2025 11:30:30 +0000 (13:30 +0200)
committerDaniel Stenberg <daniel@haxx.se>
Fri, 22 Aug 2025 14:22:07 +0000 (16:22 +0200)
Follow-up to 034612cd515f249453a435f3d94b

Add test 759 to verify

Reported-by: Stanislav Osipov
Fixes #18352
Closes #18353

src/tool_urlglob.c
tests/data/Makefile.am
tests/data/test759 [new file with mode: 0644]

index 63d3a7c72a527e4c59d5310365476c8bc6c73440..028520373e1ffba860fbcfdf2a4ad979ec78a963 100644 (file)
@@ -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;
index 3879c370e587b01478a6967ee835dd992bc6f58e..66429a68d82c96c92821cfa1c24dedb7bb6c1ae4 100644 (file)
@@ -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 (file)
index 0000000..7552365
--- /dev/null
@@ -0,0 +1,30 @@
+<testcase>
+<info>
+<keywords>
+globbing
+</keywords>
+</info>
+
+#
+# Client-side
+<client>
+<server>
+none
+</server>
+<name>
+glob '{,'
+</name>
+<command>
+"{,,,,,,,}" "{," "{,,,"
+</command>
+</client>
+
+#
+# Verify data after the test has been "shot"
+<verify>
+# curl: (3) unmatched brace in URL position 1:
+<errorcode>
+3
+</errorcode>
+</verify>
+</testcase>