6585307 2001-06-05 18:52 +0200 /57 rader/ Roman Drahtmueller <draht@suse.de> Sänt av: joel@lysator.liu.se Importerad: 2001-06-05 21:35 av Brevbäraren Extern mottagare: bugtraq@securityfocus.com Extern mottagare: qpopper@qualcomm.com Extern kopiemottagare: security@suse.de Mottagare: Bugtraq (import) <17268> Kommentar till text 6574724 av Michael Brennen <mbrennen@fni.com> Ärende: Re: Qpopper 4.0.3 **** Fixes Buffer Overflow **** (fwd) ------------------------------------------------------------ From: Roman Drahtmueller <draht@suse.de> To: <bugtraq@securityfocus.com>, <qpopper@qualcomm.com> Cc: <security@suse.de> Message-ID: <Pine.LNX.4.33.0106051840040.1114-100000@dent.suse.de> -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 > > Qpopper 4.0.3 is available at > <ftp://ftp.qualcomm.com/eudora/servers/unix/popper/>. > > > **** 4.0.3 FIXES A BUFFER OVERFLOW PRESENT IN ALL VERSIONS OF 4.0 -- > PLEASE UPGRADE IMMEDIATELY *** We hope that this information is accurate. Version 4.0.2 is not on the ftp server any more, and there is no patch from 4.0.2 to 4.0.3. We currently feel handicapped in our efforts to check the code for the changes wrt the buffer overflow. SuSE ships qpopper versions 2.53 (with a set of patches that include security fixes for this version) for SuSE-6.3, 6.4 and 7.0, SuSE-7.1 and the upcoming SuSE-7.2 release have version 3.1.2. If the above statement is right, then SuSE distributions are not vulnerable. However, we wish to double-check such a claim. All kinds of verification and transparency are welcome, including an official statement from Qualcomm (thanks in advance!). > Changes from 4.0.2 to 4.0.3: > ---------------------------- > 1. Don't call SSL_shutdown unless we tried to negotiate an > SSL session. (As suggested by Kenneth Porter.) > 2. Fix buffer overflow (reported by Gustavo Viscaino). Thank you, Roman Drahtmüller, SuSE Security. - -- - - | Roman Drahtmüller <draht@suse.de> // "Caution: Cape does | SuSE GmbH - Security Phone: // not enable user to fly." | Nürnberg, Germany +49-911-740530 // (Batman Costume warning label) | - - -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.0.6 (GNU/Linux) Comment: http://www.suse.de/ iEYEARECAAYFAjsdDlkACgkQnkDjEAAKq6RVAQCgmAZJGKq6v4J9kjznUy+tlZzm j3EAoMyrDlRtE8OgI98T7FN18IfEYfHR =G2T2 -----END PGP SIGNATURE----- (6585307) /Roman Drahtmueller <draht@suse.de>/(Ombruten) 6586349 2001-06-05 22:21 +0200 /54 rader/ Renaud Deraison <deraison@cvs.nessus.org> Sänt av: joel@lysator.liu.se Importerad: 2001-06-06 03:18 av Brevbäraren Extern mottagare: Roman Drahtmueller <draht@suse.de> Extern kopiemottagare: bugtraq@securityfocus.com Extern kopiemottagare: qpopper@qualcomm.com Extern kopiemottagare: security@suse.de Mottagare: Bugtraq (import) <17278> Kommentar till text 6585307 av Roman Drahtmueller <draht@suse.de> Ärende: Re: Qpopper 4.0.3 **** Fixes Buffer Overflow **** (fwd) ------------------------------------------------------------ From: Renaud Deraison <deraison@cvs.nessus.org> To: Roman Drahtmueller <draht@suse.de> Cc: bugtraq@securityfocus.com, qpopper@qualcomm.com, security@suse.de Message-ID: <20010605222147.A1754@cvs.nessus.org> On Tue, Jun 05, 2001 at 06:52:23PM +0200, Roman Drahtmueller wrote: > > **** 4.0.3 FIXES A BUFFER OVERFLOW PRESENT IN ALL VERSIONS OF 4.0 -- > > PLEASE UPGRADE IMMEDIATELY *** > > We hope that this information is accurate. Version 4.0.2 is not on the ftp > server any more, and there is no patch from 4.0.2 to 4.0.3. > We currently feel handicapped in our efforts to check the code for the > changes wrt the buffer overflow. The buffer overflow took place when a too long argument was supplied to the USER command (and apparently to some other commands too). Here's the gdb backtrace I did save when I investigated this issue thanks to Gustavo Viscaino (see http://www.nessus.com/bugs/nessus/fixed?id=385 if you are curious about why I'm involved in this) (note that the command was USER XXXXX[....]XXXXX\r\n) Program received signal SIGSEGV, Segmentation fault. strcpy (dest=0xbfffca95 'X' <repeats 200 times>..., src=0xbfffca54 'X' <repeats 200 times>...) at ../sysdeps/generic/strcpy.c:38 38 ../sysdeps/generic/strcpy.c: No such file or directory. (gdb) bt #0 strcpy (dest=0xbfffca95 'X' <repeats 200 times>..., src=0xbfffca54 'X' <repeats 200 times>...) at ../sysdeps/generic/strcpy.c:38 #1 0x805078c in pop_user (p=0xbfffca2c) at pop_user.c:198 #2 0x8050e58 in qpopper (argc=1482184792, argv=0x58585858) at popper.c:321 #3 0x58585858 in ?? () Cannot access memory at address 0x58585858 Unfortunately, I did not get a copy of qpopper 4.0.2, so I can't really show where the exact bug was. > If the above statement is right, then SuSE distributions are not > vulnerable. However, we wish to double-check such a claim. All kinds of I really think it's not vulnerable. Qpopper 3.0.x is immune to this bug too. -- Renaud (6586349) /Renaud Deraison <deraison@cvs.nessus.org>/(Ombruten) 6586350 2001-06-06 00:02 +0200 /26 rader/ Florian Weimer <Florian.Weimer@RUS.Uni-Stuttgart.DE> Sänt av: joel@lysator.liu.se Importerad: 2001-06-06 03:29 av Brevbäraren Extern mottagare: BUGTRAQ@SECURITYFOCUS.COM Extern kopiemottagare: security@suse.de Mottagare: Bugtraq (import) <17279> Kommentar till text 6585307 av Roman Drahtmueller <draht@suse.de> Ärende: Re: Qpopper 4.0.3 **** Fixes Buffer Overflow **** (fwd) ------------------------------------------------------------ From: Florian Weimer <Florian.Weimer@RUS.Uni-Stuttgart.DE> To: BUGTRAQ@SECURITYFOCUS.COM Cc: security@suse.de Message-ID: <tglmn67ffz.fsf@mercury.rus.uni-stuttgart.de> Roman Drahtmueller <draht@suse.de> writes: > We hope that this information is accurate. Version 4.0.2 is not on the ftp > server any more, and there is no patch from 4.0.2 to 4.0.3. > We currently feel handicapped in our efforts to check the code for the > changes wrt the buffer overflow. Fortunately, there are mirrors. The problem is that 4.0.2 discovered the buffer overflow attempt, even logged it via syslog(), but failed to actually truncate the string and copied the original one to a buffer of bounded length. However, I agree that removing the previous version and not providing a diff is extremely counterproductive. -- Florian Weimer Florian.Weimer@RUS.Uni-Stuttgart.DE University of Stuttgart http://cert.uni-stuttgart.de/ RUS-CERT +49-711-685-5973/fax +49-711-685-5898 (6586350) /Florian Weimer <Florian.Weimer@RUS.Uni-Stuttgart.DE>/ Kommentar i text 6586584 av KF <dotslash@snosoft.com> 6586584 2001-06-05 21:42 -0400 /69 rader/ KF <dotslash@snosoft.com> Sänt av: joel@lysator.liu.se Importerad: 2001-06-06 07:39 av Brevbäraren Extern mottagare: Florian Weimer <Florian.Weimer@RUS.Uni-Stuttgart.DE> Extern mottagare: bugtraq@securityfocus.com Extern mottagare: shatan@ihug.co.nz Mottagare: Bugtraq (import) <17287> Kommentar till text 6586350 av Florian Weimer <Florian.Weimer@RUS.Uni-Stuttgart.DE> Ärende: Re: Qpopper 4.0.3 **** Fixes Buffer Overflow **** (fwd) ------------------------------------------------------------ From: KF <dotslash@snosoft.com> To: Florian Weimer <Florian.Weimer@RUS.Uni-Stuttgart.DE>, bugtraq@securityfocus.com, shatan@ihug.co.nz Message-ID: <3B1D8A8D.D11E1360@snosoft.com> Heres the first post on this issue that I saw ... I worked to exploit it but it actualy did truncate the string somehow... This was on a version prior to 4.0.2 I believe... I had the same result as Optium, I was unable to write past the edx register... the logs for syslog as I recall stated the string was too long and that it was truncated down to a certain length. Perhaps Optium has more input? -KF To: Vuln-Dev Subject: Qpopper 4.0 Buffer Overflow Date: Fri Apr 20 2001 03:15:29 Author: Optium < shatan@ihug.co.nz > Message-ID: <20010420031529.5352.qmail@securityfocus.com> Recently I came across a buffer overflow in qpop4.0. The overflow occures when the input for the command "user" is above 63 chars long. I was not able to overflow beyond the edx due to what seems like char filtering beyond a curtain point (being 64). example : Trying 127.0.0.1... Connected to localhost. Escape character is '^]'. +OK user AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAA Connection closed by foreign host. Optium Florian Weimer wrote: > > Roman Drahtmueller <draht@suse.de> writes: > > > We hope that this information is accurate. Version 4.0.2 is not on the ftp > > server any more, and there is no patch from 4.0.2 to 4.0.3. > > We currently feel handicapped in our efforts to check the code for the > > changes wrt the buffer overflow. > > Fortunately, there are mirrors. The problem is that 4.0.2 discovered > the buffer overflow attempt, even logged it via syslog(), but failed > to actually truncate the string and copied the original one to a > buffer of bounded length. > > However, I agree that removing the previous version and not providing > a diff is extremely counterproductive. > > -- > Florian Weimer Florian.Weimer@RUS.Uni-Stuttgart.DE > University of Stuttgart http://cert.uni-stuttgart.de/ > RUS-CERT +49-711-685-5973/fax +49-711-685-5898 (6586584) /KF <dotslash@snosoft.com>/-----(Ombruten) 6586354 2001-06-05 13:51 -0600 /49 rader/ William D. Colburn (aka Schlake) <wcolburn@nmt.edu> Sänt av: joel@lysator.liu.se Importerad: 2001-06-06 03:42 av Brevbäraren Extern mottagare: Roman Drahtmueller <draht@suse.de> Extern kopiemottagare: bugtraq@securityfocus.com Extern kopiemottagare: qpopper@qualcomm.com Extern kopiemottagare: security@suse.de Mottagare: Bugtraq (import) <17280> Kommentar till text 6585307 av Roman Drahtmueller <draht@suse.de> Ärende: Re: Qpopper 4.0.3 **** Fixes Buffer Overflow **** (fwd) ------------------------------------------------------------ Here is a patch (attached) to take 4.0.3 down to 4.0.2. On Tue, Jun 05, 2001 at 06:52:23PM +0200, Roman Drahtmueller wrote: > We hope that this information is accurate. Version 4.0.2 is not on the ftp > server any more, and there is no patch from 4.0.2 to 4.0.3. > We currently feel handicapped in our efforts to check the code for the > changes wrt the buffer overflow. > > SuSE ships qpopper versions 2.53 (with a set of patches that include > security fixes for this version) for SuSE-6.3, 6.4 and 7.0, SuSE-7.1 and > the upcoming SuSE-7.2 release have version 3.1.2. > > If the above statement is right, then SuSE distributions are not > vulnerable. However, we wish to double-check such a claim. All kinds of > verification and transparency are welcome, including an official statement > from Qualcomm (thanks in advance!). > > > > Changes from 4.0.2 to 4.0.3: > > ---------------------------- > > 1. Don't call SSL_shutdown unless we tried to negotiate an > > SSL session. (As suggested by Kenneth Porter.) > > 2. Fix buffer overflow (reported by Gustavo Viscaino). > > > Thank you, > Roman Drahtmüller, > SuSE Security. > - -- > - - > | Roman Drahtmüller <draht@suse.de> // "Caution: Cape does | > SuSE GmbH - Security Phone: // not enable user to fly." > | Nürnberg, Germany +49-911-740530 // (Batman Costume warning label) | > - - > -----BEGIN PGP SIGNATURE----- > Version: GnuPG v1.0.6 (GNU/Linux) > Comment: http://www.suse.de/ > > iEYEARECAAYFAjsdDlkACgkQnkDjEAAKq6RVAQCgmAZJGKq6v4J9kjznUy+tlZzm > j3EAoMyrDlRtE8OgI98T7FN18IfEYfHR > =G2T2 > -----END PGP SIGNATURE----- -- William Colburn, "Sysprog" <wcolburn@nmt.edu> Computer Center, New Mexico Institute of Mining and Technology http://www.nmt.edu/tcc/ http://www.nmt.edu/~wcolburn (6586354) /William D. Colburn (aka Schlake) <wcolburn@nmt.edu>/ Bilaga (text/plain) i text 6586355 6586355 2001-06-05 13:51 -0600 /440 rader/ William D. Colburn (aka Schlake) <wcolburn@nmt.edu> Importerad: 2001-06-06 03:42 av Brevbäraren Extern mottagare: Roman Drahtmueller <draht@suse.de> Extern kopiemottagare: bugtraq@securityfocus.com Extern kopiemottagare: qpopper@qualcomm.com Extern kopiemottagare: security@suse.de Mottagare: Bugtraq (import) <17281> Bilaga (text/plain) till text 6586354 Ärende: Bilaga till: Re: Qpopper 4.0.3 **** Fixes Buffer Overflow **** (fwd) ------------------------------------------------------------ *** pop_apop.c Fri Jun 1 20:24:33 2001 --- ../../qpopper4.0.2/popper/pop_apop.c Tue Apr 3 18:23:27 2001 *************** *** 205,215 **** user_name_len = sizeof(p->user) -1; } ! strlcpy ( p->user, p->pop_parm[1], sizeof(p->user) ); ! ! #ifdef SCRAM ! strlcpy ( p->authid, p->user, sizeof(p->authid) ); /* userid is also authentication id */ ! #endif /* SCRAM */ pop_log ( p, POP_INFO, HERE, "apop \"%s\"", p->user ); --- 205,212 ---- user_name_len = sizeof(p->user) -1; } ! strcpy ( p->user, p->pop_parm[1] ); ! strcpy ( p->authid, p->user ); /* userid is also authentication id */ pop_log ( p, POP_INFO, HERE, "apop \"%s\"", p->user ); *** pop_config.c Fri Jun 1 20:24:33 2001 --- ../../qpopper4.0.2/popper/pop_config.c Tue Apr 3 18:23:29 2001 *************** *** 5,13 **** * * Revisions: * - * 06/01/01 [RCG] - * - Added 'uw-kludge' as synonym for 'uw-kluge'. - * * 02/12/01 [RCG] * - Now saving trace file name. * --- 5,10 ---- *************** *** 287,293 **** { "update-status-headers" , CfgBool , CfgResNone, kUPDATE_STATUS_HDRS }, { "user-options" , CfgBool , CfgResUser, kUSEROPTS }, { "UW-kluge" , CfgBool , CfgResNone, kUW_KLUGE }, - { "UW-kludge" , CfgBool , CfgResNone, kUW_KLUGE }, { NULL , CfgBad , CfgResNone, LAST_OPT_VAL } }; --- 284,289 ---- *** pop_dropcopy.c Fri Jun 1 20:24:34 2001 --- ../../qpopper4.0.2/popper/pop_dropcopy.c Tue Apr 3 18:23:30 2001 *************** *** 538,544 **** } if ( !p->mmdf_separator ) { ! strlcpy(frombuf, buffer, sizeof(frombuf)); /* Preserve From envelope */ } /* --- 538,544 ---- } if ( !p->mmdf_separator ) { ! strcpy(frombuf, buffer); /* Preserve From envelope */ } /* *************** *** 915,921 **** } if ( !p->mmdf_separator ) { ! strlcpy ( frombuf, buffer, sizeof(frombuf) ); } /* --- 915,921 ---- } if ( !p->mmdf_separator ) { ! strcpy ( frombuf, buffer ); } /* *** pop_parse.c Fri Jun 1 20:24:34 2001 --- ../../qpopper4.0.2/popper/pop_parse.c Tue Apr 3 18:23:34 2001 *************** *** 5,14 **** * * Revisions: * - * 06/01/01 [rcg] - * - Fixed empty password treated as empty command - * (patch submitted by Michael Smith and others). - * * 06/20/00 [rcg] * - Fixed compiler warnings. * --- 5,10 ---- *************** *** 99,106 **** /* * This is kinda gross. Passwords have to be parsed diffrently * as they may contain spaces. If you think of a cleaner way, ! * do it. The "p->pop_command[0] == 'p'" is to save a call to ! * strcmp() on every call to pop_parse(); This parsing keeps * leading and trailing speces behind for the password command. */ if ( p->pop_command[0] == 'p' && strcmp(p->pop_command, "pass") == 0 ) { --- 95,102 ---- /* * This is kinda gross. Passwords have to be parsed diffrently * as they may contain spaces. If you think of a cleaner way, ! * do it. The "p->pop_command[0] == 'p'" is so save a call to ! * strcmp() on ever call to pop_parse(); This parsing keeps * leading and trailing speces behind for the password command. */ if ( p->pop_command[0] == 'p' && strcmp(p->pop_command, "pass") == 0 ) { *************** *** 113,119 **** } return ( 1 ); } else ! return ( 0 ); } } else { --- 109,115 ---- } return ( 1 ); } else ! return ( -1 ); } } else { *** pop_pass.c Fri Jun 1 20:24:35 2001 --- ../../qpopper4.0.2/popper/pop_pass.c Tue Apr 3 18:23:34 2001 *************** *** 12,23 **** * * Revisions: * ! * 06/01/01 [rcg] ! * - Added patch by Clifton Royston to change error message ! * for nonauthfile and authfile tests. ! * ! * 02/03/01 [rcg] ! * - Now logging to p->pop_facility. * * 01/30/01 [rcg] * - Now using p->bDo_timing instead of DO_TIMING. --- 12,19 ---- * * Revisions: * ! * 02/03/01 [RCG] ! * - Now logging to p->pop_facility. * * 01/30/01 [rcg] * - Now using p->bDo_timing instead of DO_TIMING. *************** *** 1269,1275 **** */ if ( p->nonauthfile != NULL && checknonauthfile ( p ) != 0 ) { sleep ( SLEEP_SECONDS ); ! return ( pop_msg ( p, POP_FAILURE, HERE, ERRMSG_AUTH, p->user ) ); } /* --- 1265,1271 ---- */ if ( p->nonauthfile != NULL && checknonauthfile ( p ) != 0 ) { sleep ( SLEEP_SECONDS ); ! return ( pop_msg ( p, POP_FAILURE, HERE, ERRMSG_PW, p->user ) ); } /* *************** *** 1277,1283 **** */ if ( p->authfile != NULL && checkauthfile ( p ) != 0 ) { sleep ( SLEEP_SECONDS ); ! return ( pop_msg ( p, POP_FAILURE, HERE, ERRMSG_AUTH, p->user ) ); } /* --- 1273,1279 ---- */ if ( p->authfile != NULL && checkauthfile ( p ) != 0 ) { sleep ( SLEEP_SECONDS ); ! return ( pop_msg ( p, POP_FAILURE, HERE, ERRMSG_PW, p->user ) ); } /* *** pop_tls_openssl.c Fri Jun 1 20:24:35 2001 --- ../../qpopper4.0.2/popper/pop_tls_openssl.c Tue Apr 3 18:23:37 2001 *************** *** 5,14 **** * * Revisions: * - * 05/13/01 [rcg] - * - Don't call SSL_shutdown unless we tried to negotiate an - * SSL session. (As suggested by Kenneth Porter.) - * * 03/28/01 [rcg] * - Don't log "OpenSSL Error during shutdown" unless compiled * with debug or run with debug or trace options. --- 5,10 ---- *************** *** 758,811 **** int nErr = 0; ! if ( pTLS->m_pPOP->tls_started == TRUE ) { ! ret = SSL_shutdown ( pTLS->m_OpenSSLconn ); ! DEBUG_LOG1 ( pTLS->m_pPOP, "tls shutdown returned %d", ret ); ! ! nErr = SSL_get_error ( pTLS->m_OpenSSLconn, ret ); ! DEBUG_LOG2 ( pTLS->m_pPOP, "SSL_get_error says %s (%d)", ! openssl_get_error_code(nErr), nErr ); ! switch ( nErr ) { ! case SSL_ERROR_NONE: ! rslt = 0; ! break; ! ! case SSL_ERROR_ZERO_RETURN: ! rslt = -1; ! break; ! ! case SSL_ERROR_WANT_READ: ! case SSL_ERROR_WANT_WRITE: ! rslt = -1; ! break; ! ! case SSL_ERROR_WANT_X509_LOOKUP: ! rslt = -1; ! break; ! ! case SSL_ERROR_SYSCALL: ! rslt = -1; ! if ( DEBUGGING || pTLS->m_pPOP->debug ) ! log_openssl_err ( pTLS->m_pPOP, HERE, "TLS shutdown Error" ); ! break; ! ! case SSL_ERROR_SSL: ! rslt = -1; ! if ( DEBUGGING || pTLS->m_pPOP->debug ) ! log_openssl_err ( pTLS->m_pPOP, HERE, ! "OpenSSL Error during shutdown" ); ! break; ! ! default: ! rslt = -1; log_openssl_err ( pTLS->m_pPOP, HERE, ! "Unknown error during shutdown" ); ! break; ! } /* switch ( nErr ) */ ! } /* pTLS->m_pPOP->tls_started == TRUE */ ! else { ! DEBUG_LOG0 ( pTLS->m_pPOP, "pTLS->m_pPOP->tls_started == false" ); } if ( pTLS->m_OpenSSLconn != NULL ) { DEBUG_LOG0 ( pTLS->m_pPOP, "freeing m_OpenSSLconn" ); --- 754,803 ---- int nErr = 0; ! ret = SSL_shutdown ( pTLS->m_OpenSSLconn ); ! DEBUG_LOG1 ( pTLS->m_pPOP, "tls shutdown returned %d", ret ); ! ! nErr = SSL_get_error ( pTLS->m_OpenSSLconn, ret ); ! DEBUG_LOG2 ( pTLS->m_pPOP, "SSL_get_error says %s (%d)", ! openssl_get_error_code(nErr), nErr ); ! switch ( nErr ) { ! case SSL_ERROR_NONE: ! rslt = 0; ! break; ! ! case SSL_ERROR_ZERO_RETURN: ! rslt = -1; ! break; ! ! case SSL_ERROR_WANT_READ: ! case SSL_ERROR_WANT_WRITE: ! rslt = -1; ! break; ! ! case SSL_ERROR_WANT_X509_LOOKUP: ! rslt = -1; ! break; ! ! case SSL_ERROR_SYSCALL: ! rslt = -1; ! if ( DEBUGGING || pTLS->m_pPOP->debug ) ! log_openssl_err ( pTLS->m_pPOP, HERE, "TLS shutdown Error" ); ! break; ! ! case SSL_ERROR_SSL: ! rslt = -1; ! if ( DEBUGGING || pTLS->m_pPOP->debug ) log_openssl_err ( pTLS->m_pPOP, HERE, ! "OpenSSL Error during shutdown" ); ! break; ! ! default: ! rslt = -1; ! log_openssl_err ( pTLS->m_pPOP, HERE, ! "Unknown error during shutdown" ); ! break; } + if ( pTLS->m_OpenSSLconn != NULL ) { DEBUG_LOG0 ( pTLS->m_pPOP, "freeing m_OpenSSLconn" ); *** pop_user.c Sat Jun 2 00:21:14 2001 --- ../../qpopper4.0.2/popper/pop_user.c Tue Apr 3 18:23:39 2001 *************** *** 5,13 **** * * Revisions: * - * 06/01/01 [rcg] - * - Fix buffer overflow (broken in 4.0b14). - * * 02/14/01 [rcg] * - Fixed problems compiling with Kerberos 5. * --- 5,10 ---- *************** *** 197,207 **** user_name_len = sizeof(p->user) -1; } ! strlcpy ( p->user, p->pop_parm[1], sizeof(p->user) ); ! ! #ifdef SCRAM ! strlcpy ( p->authid, p->user, sizeof(p->authid) ); /* userid is also authentication id */ ! #endif /* SCRAM */ /* * Cache passwd struct for use later; this memory gets freed at the end --- 194,201 ---- user_name_len = sizeof(p->user) -1; } ! strcpy ( p->user, p->pop_parm[1] ); ! strcpy ( p->authid, p->user ); /* userid is also authentication id */ /* * Cache passwd struct for use later; this memory gets freed at the end *** pop_util.c Fri Jun 1 20:24:36 2001 --- ../../qpopper4.0.2/popper/pop_util.c Tue Apr 3 18:23:40 2001 *************** *** 7,15 **** * * Revisions: * - * 06/01/01 [rg] - * - Fix from Arvin Schnell for warnings on 64-bit systems. - * * 04/02/01 [rg] * - Changed macro STACKSIZE to QPSTACKSIZE to avoid conflicts. * --- 7,12 ---- *************** *** 38,51 **** * Simple stack Implementation * wish the compilers does inlining. */ ! FP Push(CALLSTACK *s, FP f) { ! return ( s->CurP < QPSTACKSIZE ) ? ( s->Stack[s->CurP++] = f ) : (FP) 0; } FP Pop(CALLSTACK *s) { ! return s->CurP ? s->Stack[--s->CurP] : (FP) 0; } int StackSize(CALLSTACK *s) --- 35,48 ---- * Simple stack Implementation * wish the compilers does inlining. */ ! int Push(CALLSTACK *s, FP f) { ! return (int) ((s->CurP < QPSTACKSIZE) ? (s->Stack[s->CurP++] = f) : 0 ); } FP Pop(CALLSTACK *s) { ! return s->CurP ? s->Stack[--s->CurP] : (FP)0; } int StackSize(CALLSTACK *s) *** popper.c Fri Jun 1 20:24:36 2001 --- ../../qpopper4.0.2/popper/popper.c Tue Apr 3 18:23:41 2001 *************** *** 15,24 **** * * Revisions: * - * 06/01/01 [rg] - * - Added patch by Carles Xavier Munyoz to fix erroneous - * scanning for \n in getline(). - * * 01/15/01 [rg] * - Handle run-time options bShy, bDo_timing, bUpdate_on_abort. * --- 15,20 ---- *************** *** 422,433 **** /* * Look for line in our buffer */ ! for ( p = pPOP->pcInStart; ! p < pPOP->pcInEnd; ! p++ ) if ( *p == '\n' ) break; ! if ( p != pPOP->pcInEnd && *p == '\n' ) { /* * Got a line */ --- 418,428 ---- /* * Look for line in our buffer */ ! p = pPOP->pcInStart; ! for ( ; p < pPOP->pcInEnd; p++ ) if ( *p == '\n' ) break; ! if ( pPOP->pcInEnd != pPOP->pcInStart && *p == '\n' ) { /* * Got a line */ (6586355) /William D. Colburn (aka Schlake) <wcolburn@nmt.edu>/(Ombruten)