]> sjero.net Git - wget/blobdiff - src/http.c
[svn] Fixes by Christian Biere:
[wget] / src / http.c
index e3889bb017a45904a74618780f4d5cce0a5a1f96..b779e36ee6f71d82318c8e5ba7e9780bcbbbf5c5 100644 (file)
@@ -581,8 +581,8 @@ response_header_copy (const struct response *resp, const char *name,
     return 0;
   if (bufsize)
     {
-      int len = MIN (e - b, bufsize);
-      strncpy (buf, b, len);
+      int len = MIN (e - b, bufsize - 1);
+      memcpy (buf, b, len);
       buf[len] = '\0';
     }
   return 1;
@@ -1253,8 +1253,7 @@ gethttp (struct url *u, struct http_stat *hs, int *dt, struct url *proxy)
            }
        }
       request_set_header (req, "Content-Length",
-                         aprintf ("Content-Length: %ld", post_data_size),
-                         rel_value);
+                         aprintf ("%ld", post_data_size), rel_value);
     }
 
   /* Add the user headers. */
@@ -1718,6 +1717,8 @@ gethttp (struct url *u, struct http_stat *hs, int *dt, struct url *proxy)
   if (keep_alive)
     flags |= rb_read_exactly;
   if (hs->restval > 0 && contrange == 0)
+    /* If the server ignored our range request, instruct fd_read_body
+       to skip the first RESTVAL bytes of body.  */
     flags |= rb_skip_startpos;
   hs->len = hs->restval;
   hs->rd_size = 0;
@@ -1903,7 +1904,7 @@ File `%s' already there, will not retrieve.\n"), *hstat.local_file);
       if (opt.verbose)
        {
          char *hurl = url_string (u, 1);
-         char tmp[15];
+         char tmp[256];
          strcpy (tmp, "        ");
          if (count > 1)
            sprintf (tmp, _("(try:%2d)"), count);