[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Bug-wget] Segmentation fault with current development version of wg
From: |
Giuseppe Scrivano |
Subject: |
Re: [Bug-wget] Segmentation fault with current development version of wget |
Date: |
Wed, 01 May 2013 21:11:27 +0200 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/24.2 (gnu/linux) |
Darshit Shah <address@hidden> writes:
> I am fixing this issue, but it is a terribly ugly hack. If someone could
> help improve it I'd be most truly grateful.
> I have a couple of ideas, but I will need to work them out and implement
> them when I have the time.
>
> The reason it has to be so ugly is that, we cannot use strcmp or strcasecmp
> on a NULL String, and we cannot initialize opt.method since that would
> break some sanity checks which are in place so that --post-* and --body-*
> commands don't conflict with each other.
what about this patch? Any comment?
diff --git a/src/http.c b/src/http.c
index 25ad474..6b23382 100644
--- a/src/http.c
+++ b/src/http.c
@@ -1766,12 +1766,8 @@ gethttp (struct url *u, struct http_stat *hs, int *dt,
struct url *proxy,
if (head_only)
meth = "HEAD";
else if (opt.method)
- {
- char *q;
- for (q = opt.method; *q; ++q)
- *q = c_toupper (*q);
- meth = opt.method;
- }
+ meth = opt.method;
/* Use the full path, i.e. one that includes the leading slash and
the query string. E.g. if u->path is "foo/bar" and u->query is
"param=value", full_path will be "/foo/bar?param=value". */
diff --git a/src/init.c b/src/init.c
index 813781f..370506f 100644
--- a/src/init.c
+++ b/src/init.c
@@ -87,6 +87,7 @@ CMD_DECLARE (cmd_directory_vector);
CMD_DECLARE (cmd_number);
CMD_DECLARE (cmd_number_inf);
CMD_DECLARE (cmd_string);
+CMD_DECLARE (cmd_string_uppercase);
CMD_DECLARE (cmd_file);
CMD_DECLARE (cmd_directory);
CMD_DECLARE (cmd_time);
@@ -212,7 +213,7 @@ static const struct {
{ "logfile", &opt.lfilename, cmd_file },
{ "login", &opt.ftp_user, cmd_string },/* deprecated*/
{ "maxredirect", &opt.max_redirect, cmd_number },
- { "method", &opt.method, cmd_string },
+ { "method", &opt.method, cmd_string_uppercase },
{ "mirror", NULL, cmd_spec_mirror },
{ "netrc", &opt.netrc, cmd_boolean },
{ "noclobber", &opt.noclobber, cmd_boolean },
@@ -959,8 +960,24 @@ cmd_string (const char *com, const char *val, void *place)
return true;
}
+/* Like cmd_string but ensure the string is upper case. */
+static bool
+cmd_string_uppercase (const char *com, const char *val, void *place)
+{
+ char *q;
+ bool ret = cmd_string (com, val, place);
+ q = *((char **) place);
+ if (!ret || q == NULL)
+ return false;
+
+ while (*q)
+ *q++ = c_toupper (*q);
+
+ return true;
+}
+
-/* Like the above, but handles tilde-expansion when reading a user's
+/* Like cmd_string, but handles tilde-expansion when reading a user's
`.wgetrc'. In that case, and if VAL begins with `~', the tilde
gets expanded to the user's home directory. */
static bool
--
Giuseppe
- Re: [Bug-wget] Segmentation fault with current development version of wget, Darshit Shah, 2013/05/01
- Re: [Bug-wget] Segmentation fault with current development version of wget,
Giuseppe Scrivano <=
- Re: [Bug-wget] Segmentation fault with current development version of wget, Darshit Shah, 2013/05/01
- Re: [Bug-wget] Segmentation fault with current development version of wget, Gijs van Tulder, 2013/05/01
- Re: [Bug-wget] Segmentation fault with current development version of wget, Giuseppe Scrivano, 2013/05/01
- Re: [Bug-wget] Segmentation fault with current development version of wget, Daniel Stenberg, 2013/05/01
- Re: [Bug-wget] Segmentation fault with current development version of wget, Giuseppe Scrivano, 2013/05/02
- Re: [Bug-wget] Segmentation fault with current development version of wget, Darshit Shah, 2013/05/04