Paul Eggert wrote:
> 
> (I built wget on Solaris 8 with GCC 3.0.3.)
> 
> Here are the symptoms of the problem.
> 
> 184-shade $ wget --recursive file:///
> Segmentation Fault (core dumped)

Note that file:// is not supported.
$ wget -d file://
DEBUG output created by Wget 1.8.1 on cygwin.

file://: Unsupported scheme.

But the core dump is not limited to Solaris when combining --recursive
with file://
$ wget -d --recursive file://
DEBUG output created by Wget 1.8.1 on cygwin.

Segmentation fault (core dumped)

And this is not fixed in the current CVS code
$ wget-dev -d --recursive file://
DEBUG output created by Wget 1.8.1+cvs on cygwin.

Segmentation fault (core dumped)

A patch like this (would one of the C coder on the list check it?) seems
to fix it. I suppose the FINISHED and Downloaded pat should be removed
too, to make it more clear that it ended with error.

$ ./wget-dev.exe -d --recursive file://
DEBUG output created by Wget 1.8.1+cvs on cygwin.

file://: Unsupported scheme.

FINISHED --01:12:30--
Downloaded: 0 bytes in 0 files

Index: src/recur.c
===================================================================
RCS file: /pack/anoncvs/wget/src/recur.c,v
retrieving revision 1.41
diff -u -r1.41 recur.c
--- src/recur.c 2001/12/19 14:27:29     1.41
+++ src/recur.c 2002/02/17 00:15:25
@@ -184,6 +184,7 @@
 retrieve_tree (const char *start_url)
 retrieve_tree (const char *start_url)
 {
   uerr_t status = RETROK;
+  int url_error_code;          /* url parse error code */
 
   /* The queue of URLs we need to load. */
   struct url_queue *queue = url_queue_new ();
@@ -194,7 +195,14 @@
 
   /* We'll need various components of this, so better get it over with
      now. */
-  struct url *start_url_parsed = url_parse (start_url, NULL);
+  struct url *start_url_parsed = url_parse (start_url,
&url_error_code);
+  if (!start_url_parsed)
+    {
+      logprintf (LOG_NOTQUIET, "%s: %s.\n", start_url, url_error
(url_error_code));
+      xfree (start_url);
+      return URLERROR;
+    }
+
 
   /* Enqueue the starting URL.  Use start_url_parsed->url rather than
      just URL so we enqueue the canonical form of the URL.  */

> 185-shade $ wget --version
> GNU Wget 1.8.1
> 
> Copyright (C) 1995, 1996, 1997, 1998, 2000, 2001 Free Software Foundation, Inc.
> This program is distributed in the hope that it will be useful,
> but WITHOUT ANY WARRANTY; without even the implied warranty of
> MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
> GNU General Public License for more details.
> 
> Originally written by Hrvoje Niksic <[EMAIL PROTECTED]>.
> 186-shade $ uname -a
> SunOS shade.twinsun.com 5.8 Generic_108528-13 sun4u sparc SUNW,Ultra-1
> 187-shade $ gdb /opt/reb/bin/wget core
> GNU gdb 5.1.1
> Copyright 2002 Free Software Foundation, Inc.
> GDB is free software, covered by the GNU General Public License, and you are
> welcome to change it and/or distribute copies of it under certain conditions.
> Type "show copying" to see the conditions.
> There is absolutely no warranty for GDB.  Type "show warranty" for details.
> This GDB was configured as "sparc-sun-solaris2.8"...
> Core was generated by `wget --recursive file:///'.
> Program terminated with signal 11, Segmentation fault.
> Reading symbols from /usr/lib/libmd5.so.1...done.
> Loaded symbols for /usr/lib/libmd5.so.1
> Reading symbols from /opt/reb/lib/libssl.so.0.9.6...done.
> Loaded symbols for /opt/reb/lib/libssl.so.0.9.6
> Reading symbols from /opt/reb/lib/libcrypto.so.0.9.6...done.
> Loaded symbols for /opt/reb/lib/libcrypto.so.0.9.6
> Reading symbols from /usr/lib/libdl.so.1...done.
> Loaded symbols for /usr/lib/libdl.so.1
> Reading symbols from /usr/lib/libsocket.so.1...done.
> Loaded symbols for /usr/lib/libsocket.so.1
> Reading symbols from /usr/lib/libnsl.so.1...done.
> Loaded symbols for /usr/lib/libnsl.so.1
> Reading symbols from /usr/lib/libc.so.1...done.
> Loaded symbols for /usr/lib/libc.so.1
> Reading symbols from /usr/lib/libmp.so.2...done.
> Loaded symbols for /usr/lib/libmp.so.2
> Reading symbols from /usr/platform/SUNW,Ultra-1/lib/libc_psr.so.1...done.
> Loaded symbols for /usr/platform/SUNW,Ultra-1/lib/libc_psr.so.1
> #0  0x0002a698 in retrieve_tree (start_url=0x4fb98 "file:///") at recur.c:201
> 201     recur.c: No such file or directory.
>         in recur.c
> (gdb) where
> #0  0x0002a698 in retrieve_tree (start_url=0x4fb98 "file:///") at recur.c:201
> #1  0x0002832c in main (argc=-4264136, argv=0xffbef054) at main.c:812

-- 
Med venlig hilsen / Kind regards

Hack Kampbjørn

Reply via email to