Re: [Exim] Reproduciable crash (plaintext authenticator?)

Αρχική Σελίδα
Delete this message
Reply to this message
Συντάκτης: Alexander Sabourenkov
Ημερομηνία:  
Προς: exim-users
Υ/ο: ph10
Αντικείμενο: Re: [Exim] Reproduciable crash (plaintext authenticator?)
Philip Hazel wrote:
> On Wed, 19 Mar 2003, Alexander Sabourenkov wrote:
>
>
>>The following transaction results in SIGSEGV on at least 4.10, 4.12 and 4.14:
>
>
> Thanks for the report.
>
>
>>Now compiling exim in debug mode to investigate further.
>
>
> More information is always helpful!


gdb bt for exim-4.14 :

Program received signal SIGSEGV, Segmentation fault.
0x28173e94 in strncpy () from /usr/lib/libc.so.4
(gdb) bt
#0  0x28173e94 in strncpy () from /usr/lib/libc.so.4
#1  0x8096a91 in string_cat (
     string=0x80e73f8 ", or sets\n# up an auto-reply,
respectively.\n\nuserforward:\n  driver = redirect\n  check_local_user\n  file
= $home/.forward\n  no_verify\n  no_expn\n  check_ancestor\n# allow_filter\n
file_transport = addres"..., size=0xbfbfef54,
     ptr=0xbfbfef58, s=0x0, len=4) at string.c:829
#2  0x8066f97 in expand_string_internal (string=0x80e5248 "$1", ket_ends=0,
left=0x0, skipping=0) at expand.c:2289
#3  0x806a75f in expand_string (string=0x80e5248 "$1") at expand.c:3965
#4  0x8090485 in smtp_setup_msg () at smtp_in.c:1845
#5  0x804ded7 in handle_smtp_call (listen_sockets=0x80e7070,
listen_socket_count=1, accept_socket=1, accepted=0xbfbff2ec)
     at daemon.c:415
#6  0x804f744 in daemon_go () at daemon.c:1310
#7  0x80625b5 in main (argc=2, cargv=0xbfbffac0) at exim.c:3264
#8  0x804a51b in _start ()
(gdb)


The $1 in expand_string() call should be the '*'.

Something must be wrong in storing smtp session state, because if one does not
do the AUTH PLAIN part, like in the following transaction, exim does not get
an sigsegv:

EHLO tararam
250-lxnt.inside.caravan.ru Hello localhost [127.0.0.1]
250-SIZE 52428800
250-PIPELINING
250-AUTH LOGIN PLAIN
250 HELP
AUTH LOGIN =
334 UGFzc3dvcmQ6
*
501 Authentication cancelled

Seems like something gets set to something wrong when AUTH PLAIN fails, and
that causes segfault at AUTH LOGIN.

--

./lxnt