That is what I got out of it. What is the process for getting code issues submitted and resolved for OpenSSL?
From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Sendroiu Eugen Sent: Wednesday, April 09, 2008 4:41 AM To: [email protected] Subject: Re: Interesting logic in dso_lib.c (libcrypto) If filespec1 is NULL, it doesn't matter what dso is, it will not pass the first if, so the latter checks for dso and filespec1 are useless. ================================== Eugen Sendroiu Address: str. Horia nr 3, bl a8, sc 2, ap 7, Craiova Dolj - 200490, Romania Home : +40(0)351 401134 Mobile : +40(0)743 055244 +40(0)730 006760 E-mail : [EMAIL PROTECTED] [EMAIL PROTECTED] =================================== ----- Original Message ---- From: Michael Saladin <[EMAIL PROTECTED]> To: [email protected] Sent: Wednesday, April 9, 2008 9:06:14 AM Subject: RE: Interesting logic in dso_lib.c (libcrypto) The first 'if' just guarantees that dso OR filespec1 are not NULL, each of those parameters could be NULL individually. ________________________________ From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Salivar.William Sent: Mittwoch, 9. April 2008 00:04 To: [email protected] Subject: Interesting logic in dso_lib.c (libcrypto) The first ‘if’ guarantees that filespec1 will not be NULL. And yet there are two tests for NULL in the code following the ‘if’. This is from OpenSSL 0.9.8g. 393 char *DSO_merge <http://engapp30:5467/cov.cgi?clicked=1&events=845739&line=0&prec=%2Fcov.cgi%3Fc%3DAAAAAADA7g%26hstate%3D1%26owner%3D86%26q%3D6%26runs%3D95%26t%3D6%26v%3D1&run=95&t=12&v=1&xref=637&lxfile=45002> (DSO <http://engapp30:5467/cov.cgi?clicked=1&events=845739&line=0&prec=%2Fcov.cgi%3Fc%3DAAAAAADA7g%26hstate%3D1%26owner%3D86%26q%3D6%26runs%3D95%26t%3D6%26v%3D1&run=95&t=12&v=1&xref=638&lxfile=45002> *dso, const char *filespec1, const char *filespec2) 394 { 395 char *result <http://engapp30:5467/cov.cgi?clicked=1&events=845739&line=0&prec=%2Fcov.cgi%3Fc%3DAAAAAADA7g%26hstate%3D1%26owner%3D86%26q%3D6%26runs%3D95%26t%3D6%26v%3D1&run=95&t=12&v=1&xref=642&lxfile=45002> = NULL; 396 Event cannot_single: After this line (or expression), the value of "filespec1" cannot be 0 397 if(dso == NULL || filespec1 == NULL) 398 { 399 DSOerr(DSO_F_DSO_MERGE,ERR_R_PASSED_NULL_PARAMETER); 400 return(NULL); 401 } Event dead_error_condition: On this path, the condition "filespec1 == 0" could not be true 402 if(filespec1 <http://engapp30:5467/cov.cgi?clicked=1&events=845739&line=0&prec=%2Fcov.cgi%3Fc%3DAAAAAADA7g%26hstate%3D1%26owner%3D86%26q%3D6%26runs%3D95%26t%3D6%26v%3D1&run=95&t=12&v=1&xref=662&lxfile=45002> == NULL) Event dead_error_line: Cannot reach this line of code, beginning "dso" 403 filespec1 <http://engapp30:5467/cov.cgi?clicked=1&events=845739&line=0&prec=%2Fcov.cgi%3Fc%3DAAAAAADA7g%26hstate%3D1%26owner%3D86%26q%3D6%26runs%3D95%26t%3D6%26v%3D1&run=95&t=12&v=1&xref=665&lxfile=45002> = dso->filename; 404 if(filespec1 <http://engapp30:5467/cov.cgi?clicked=1&events=845739&line=0&prec=%2Fcov.cgi%3Fc%3DAAAAAADA7g%26hstate%3D1%26owner%3D86%26q%3D6%26runs%3D95%26t%3D6%26v%3D1&run=95&t=12&v=1&xref=668&lxfile=45002> == NULL) 405 { 406 DSOerr(DSO_F_DSO_MERGE,DSO_R_NO_FILE_SPECIFICATION); 407 return(NULL); 408 } 409 if((dso->flags <http://engapp30:5467/cov.cgi?clicked=1&events=845739&line=0&prec=%2Fcov.cgi%3Fc%3DAAAAAADA7g%26hstate%3D1%26owner%3D86%26q%3D6%26runs%3D95%26t%3D6%26v%3D1&run=95&t=12&v=1&xref=682&lxfile=45002> & DSO_FLAG_NO_NAME_TRANSLATION <http://engapp30:5467/cov.cgi?clicked=1&events=845739&line=0&prec=%2Fcov.cgi%3Fc%3DAAAAAADA7g%26hstate%3D1%26owner%3D86%26q%3D6%26runs%3D95%26t%3D6%26v%3D1&run=95&t=12&v=1&xref=683&lxfile=45002> ) == 0) 410 { 411 if(dso->merger <http://engapp30:5467/cov.cgi?clicked=1&events=845739&line=0&prec=%2Fcov.cgi%3Fc%3DAAAAAADA7g%26hstate%3D1%26owner%3D86%26q%3D6%26runs%3D95%26t%3D6%26v%3D1&run=95&t=12&v=1&xref=685&lxfile=45002> != NULL <http://engapp30:5467/cov.cgi?clicked=1&events=845739&line=0&prec=%2Fcov.cgi%3Fc%3DAAAAAADA7g%26hstate%3D1%26owner%3D86%26q%3D6%26runs%3D95%26t%3D6%26v%3D1&run=95&t=12&v=1&xref=686&lxfile=45002> ) 412 result = dso->merger(dso, filespec1, filespec2 <http://engapp30:5467/cov.cgi?clicked=1&events=845739&line=0&prec=%2Fcov.cgi%3Fc%3DAAAAAADA7g%26hstate%3D1%26owner%3D86%26q%3D6%26runs%3D95%26t%3D6%26v%3D1&run=95&t=12&v=1&xref=693&lxfile=45002> ); 413 else if(dso->meth->dso_merger <http://engapp30:5467/cov.cgi?clicked=1&events=845739&line=0&prec=%2Fcov.cgi%3Fc%3DAAAAAADA7g%26hstate%3D1%26owner%3D86%26q%3D6%26runs%3D95%26t%3D6%26v%3D1&run=95&t=12&v=1&xref=696&lxfile=45002> != NULL) 414 result = dso->meth <http://engapp30:5467/cov.cgi?clicked=1&events=845739&line=0&prec=%2Fcov.cgi%3Fc%3DAAAAAADA7g%26hstate%3D1%26owner%3D86%26q%3D6%26runs%3D95%26t%3D6%26v%3D1&run=95&t=12&v=1&xref=701&lxfile=45002> ->dso_merger(dso, 415 filespec1, filespec2); 416 } 417 return(result); 418 } __________________________________________________ Do You Yahoo!? Tired of spam? Yahoo! Mail has the best spam protection around http://mail.yahoo.com
