]> granicus.if.org Git - curl/commitdiff
- Song Ma's warning if -r/--range is given with a "bad" range, also noted in
authorDaniel Stenberg <daniel@haxx.se>
Sun, 22 Apr 2007 09:31:27 +0000 (09:31 +0000)
committerDaniel Stenberg <daniel@haxx.se>
Sun, 22 Apr 2007 09:31:27 +0000 (09:31 +0000)
  the man page now.

CHANGES
docs/curl.1
src/main.c

diff --git a/CHANGES b/CHANGES
index 3ccb69909c567570cdfe716d07468f5529501387..a22131418ff8055f5250bb012070d0e85ac40b82 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -6,6 +6,15 @@
 
                                   Changelog
 
+Daniel S (22 April 2007)
+- Song Ma's warning if -r/--range is given with a "bad" range, also noted in
+  the man page now.
+
+- Daniel Black filed bug #1705177
+  (http://curl.haxx.se/bug/view.cgi?id=1705177) where --without-ssl
+  --with-gnutl outputs a warning about SSL not being enabled even though GnuTLS
+  was found and used.
+
 Daniel S (21 April 2007)
 - Daniel Black filed bug #1704675
   (http://curl.haxx.se/bug/view.cgi?id=1704675) identifying a double-free
index dd5d1d7588c1f7f6f5625a79bdd1b7bd1de602c5..a4bc9f00ed54c9f0c58e1306227981bb6313530a 100644 (file)
@@ -941,6 +941,10 @@ specifies two separate 100 bytes ranges(*)(H)
 (*) = NOTE that this will cause the server to reply with a multipart
 response!
 
+Only digit characters (0-9) are valid in 'start' and 'stop' of range syntax
+\&'start-stop'. If a non-digit character is given in the range, the server's
+response will be unexpectable, depending on different server's configuration.
+
 You should also be aware that many HTTP/1.1 servers do not have this feature
 enabled, so that when you attempt to get a range, you'll instead get the whole
 document.
index 55d1d0adf11beb12d1f9a2a5ab6c9050b88c9dcf..229eb8dc88743ada6943899fbf59e556be4194dc 100644 (file)
@@ -2350,7 +2350,7 @@ static ParameterError getparameter(char *flag, /* f or -long-flag */
          (and won't actually be range by definition). The man page previously
          claimed that to be a good way, why this code is added to work-around
          it. */
-      if(!strchr(nextarg, '-')) {
+      if(ISDIGIT(*nextarg) && !strchr(nextarg, '-')) {
         char buffer[32];
         curl_off_t off;
         warnf(config,
@@ -2360,10 +2360,23 @@ static ParameterError getparameter(char *flag, /* f or -long-flag */
         snprintf(buffer, sizeof(buffer), "%Od-", off);
         GetStr(&config->range, buffer);
       }
-      else
+      {
+        /* byte range requested */
+        char* tmp_range;
+        tmp_range=nextarg;
+        while(*tmp_range != '\0') {
+          if(!ISDIGIT(*tmp_range)&&*tmp_range!='-'&&*tmp_range!=',') {
+            warnf(config,"Invalid character is found in given range. "
+                  "A specified range MUST have only digits in "
+                  "\'start\'-\'stop\'. The server's response to this "
+                  "request is uncertain.\n");
+            break;
+          }
+          tmp_range++;
+        }
         /* byte range requested */
         GetStr(&config->range, nextarg);
-
+      }
       break;
     case 'R':
       /* use remote file's time */