summaryrefslogtreecommitdiff
path: root/src/tool_urlglob.h
diff options
context:
space:
mode:
authorDaniel Stenberg <daniel@haxx.se>2012-08-07 13:45:59 +0200
committerDaniel Stenberg <daniel@haxx.se>2012-08-07 13:45:59 +0200
commit73b1a965f76d0b3e03e078604fe1824875ce15c0 (patch)
tree27760175b6738fffb9cd7529ec665256b41060a7 /src/tool_urlglob.h
parent42e4c34ff37c259ff26e78aab22c0bccf06d1bcb (diff)
downloadgnurl-73b1a965f76d0b3e03e078604fe1824875ce15c0.tar.gz
gnurl-73b1a965f76d0b3e03e078604fe1824875ce15c0.tar.bz2
gnurl-73b1a965f76d0b3e03e078604fe1824875ce15c0.zip
globbing: fix segfault when >9 globs were used
Stupid lack of range checks caused the code to overwrite local variables after glob number nine. Added checks now. Bug: http://curl.haxx.se/bug/view.cgi?id=3546353
Diffstat (limited to 'src/tool_urlglob.h')
-rw-r--r--src/tool_urlglob.h5
1 files changed, 4 insertions, 1 deletions
diff --git a/src/tool_urlglob.h b/src/tool_urlglob.h
index 9c37f1560..9c0813750 100644
--- a/src/tool_urlglob.h
+++ b/src/tool_urlglob.h
@@ -53,9 +53,12 @@ typedef struct {
} content;
} URLPattern;
+/* the total number of globs supported */
+#define GLOB_PATTERN_NUM 9
+
typedef struct {
char *literal[10];
- URLPattern pattern[9];
+ URLPattern pattern[GLOB_PATTERN_NUM+1];
size_t size;
size_t urllen;
char *glob_buffer;