Package: elinks
Version: 0.10.4-7
Severity: important
Tags: patch

IPv6 ftp connections crash if "set protocol.ftp.use_epsv = 0" is set in
elisp.conf.

The crash is caused by get_pasv6_socket, which overwrites the stack since it
clears an argument of type struct sockaddr_storage in get_pasv6_socket, but
it was passed a struct sockaddr_in6 as parameter. The size of
struct sockaddr_storage (128) is larger than struct sockaddr_in6 (28), which
leads to overwriting the stack.

---
Crash output:

ELinks crashed. That shouldn't happen. Please report this incident to
developers. If you would like to help to debug the problem you just
uncovered, please keep the core you just got and send the developers
output of 'bt' command entered inside of gdb (which you run as:
gdb elinks core). Thanks a lot for your cooperation!

ELinks 0.10.4 (built on May 21 2005 13:57:21)

Features:
Standard, Fastmem, IPv6, gzip, bzip2, Cascading Style Sheets, Protocol
(File, FTP, HTTP, NNTP, SMB, URI rewrite, User protocols),
SSL (GnuTLS), MIME (Option system, Mailcap, Mimetypes files), LED
indicators,
Bookmarks, Cookies, Form History, Global History, Scripting (Lua, Perl)

/usr/bin/elinks(dump_backtrace+0x1d)[0x80d4dbd]
/usr/bin/elinks[0x80946c4]
/usr/bin/elinks[0x8094a04]
[0xffffe420]
[0x0]
Avbruten (SIGABRT)

---
patch:

--- ftp.c~      2005-04-06 11:30:30.000000000 +0200
+++ ftp.c       2005-06-10 09:39:13.000000000 +0200
@@ -597,7 +597,7 @@
 add_file_cmd_to_str(struct connection *conn)
 {
 #ifdef CONFIG_IPV6
-       struct sockaddr_in6 data_addr;
+       struct sockaddr_storage data_addr;
 #endif
        struct ftp_connection_info *c_i;
        struct string command;
@@ -668,7 +668,7 @@
                        if (c_i->use_epsv)
                                add_to_string(&command, "EPSV");
                        else
-                               add_eprtcmd_to_string(&command, &data_addr);
+                               add_eprtcmd_to_string(&command, (struct 
sockaddr_in6 *)&data_addr);
                else
 #endif
                        if (c_i->use_pasv)
@@ -702,7 +702,7 @@
                        if (c_i->use_epsv)
 #endif
        struct ftp_connection_info *c_i;
        struct string command;
@@ -668,7 +668,7 @@
                        if (c_i->use_epsv)
                                add_to_string(&command, "EPSV");
                        else
-                               add_eprtcmd_to_string(&command, &data_addr);
+                               add_eprtcmd_to_string(&command, (struct 
sockaddr_in6 *)&data_addr);
                else
 #endif
                        if (c_i->use_pasv)
@@ -702,7 +702,7 @@
                        if (c_i->use_epsv)
                                add_to_string(&command, "EPSV");
                        else
-                               add_eprtcmd_to_string(&command, &data_addr);
+                               add_eprtcmd_to_string(&command, (struct 
sockaddr_in6 *)&data_addr);
                else
 #endif
                        if (c_i->use_pasv)


-- System Information:
Debian Release: 3.1
  APT prefers testing
  APT policy: (500, 'testing'), (100, 'unstable'), (100, 'testing')
Architecture: i386 (i686)
Kernel: Linux 2.6.11-vserver-k7
Locale: LANG=sv_SE.UTF-8, LC_CTYPE=sv_SE.UTF-8 (charmap=UTF-8)

Versions of packages elinks depends on:
ii  debconf                  1.4.30.13       Debian configuration management sy
ii  libbz2-1.0               1.0.2-7         high-quality block-sorting file co
ii  libc6                    2.3.2.ds1-22    GNU C Library: Shared libraries an
ii  libexpat1                1.95.8-3        XML parsing C library - runtime li
ii  libgnutls11              1.0.16-13.1     GNU TLS library - runtime library
ii  libgpmg1                 1.19.6-19sarge1 General Purpose Mouse - shared lib
ii  libidn11                 0.5.13-1.0      GNU libidn library, implementation
ii  liblua50                 5.0.2-5         Main interpreter library for the L
ii  liblualib50              5.0.2-5         Extension library for the Lua 5.0 
ii  libperl5.8               5.8.4-8         Shared Perl library
ii  zlib1g                   1:1.2.2-4       compression library - runtime

-- no debconf information


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]

Reply via email to