]> git.ipfire.org Git - thirdparty/curl.git/commitdiff
parsedate.c: check sscanf result before passing it to strlen
authorMarc Hoersken <info@marc-hoersken.de>
Sat, 19 Apr 2014 13:47:07 +0000 (15:47 +0200)
committerMarc Hoersken <info@marc-hoersken.de>
Sat, 19 Apr 2014 13:47:07 +0000 (15:47 +0200)
lib/parsedate.c

index c4f0f45166e8907c174802a225e042ed5881a827..d7942f5542bde017dbf6746067b5f802b0494231 100644 (file)
@@ -5,7 +5,7 @@
  *                            | (__| |_| |  _ <| |___
  *                             \___|\___/|_| \_\_____|
  *
- * Copyright (C) 1998 - 2013, Daniel Stenberg, <daniel@haxx.se>, et al.
+ * Copyright (C) 1998 - 2014, Daniel Stenberg, <daniel@haxx.se>, et al.
  *
  * This software is licensed as described in the file COPYING, which
  * you should have received as part of this distribution. The terms
@@ -353,9 +353,11 @@ static int parsedate(const char *date, time_t *output)
       /* a name coming up */
       char buf[32]="";
       size_t len;
-      sscanf(date, "%31[ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz]",
-             buf);
-      len = strlen(buf);
+      if(sscanf(date, "%31[ABCDEFGHIJKLMNOPQRSTUVWXYZ"
+                          "abcdefghijklmnopqrstuvwxyz]", buf))
+        len = strlen(buf);
+      else
+        len = 0;
 
       if(wdaynum == -1) {
         wdaynum = checkday(buf, len);