[Pkg-openssl-devel] Bug#168201: Bug Not Found -- Incorrect Cause or More Info Required
Scott Schaefer
saschaefer at neurodiverse.org
Tue May 3 23:35:13 UTC 2011
Based on my reading of the code, your SSL_xmit() routine never calls
into the SSL library code if size==0.
While I appreciate your report that adding the lines ...
if (size == 0) // PTB fight new openssl bug
return 0;
... "cured the problem", I believe you/someone will need to demonstrate
how any SSL lib function is invoked in the code below, EVEN WITHOUT THE
ADDED LINES.
Premise #1: There are only two SSL lib entry points:
a) result = SSL_write(con, tbuf+off, len);
b) result = SSL_read(con, tbuf+off, len);
Premise #2:
Your SSL_xmit() is called from two places. In both cases:
con != 0
size >= 0
(Other constraints/assertions are not required in this discussion)
Premise #3
SSL_xmit() returns -1 if buf == 0, regardless of (other) inputs
Thus, because size >= 0, len >= 0
Premise #5
SSL_xmit() initializes variables 'result', 'tot', and 'off' to zero
It also len = size.
No other statements preceding 'while (len > 0) { ...' have any side
effects.
Thus, at while (len > 0) {, all of the following are true:
result=0
tot=0
off=0
len >= 0 /* because input size >= 0 */
Premise #6
If size==0, execution continues at end of while, identical to exit:
label
Since result=0, statement 'return result' is executed and function
returns.,
I am open to demonstration the above logic is flawed.
In absence of such demonstration, either something is missing from your
report, or the problem lies outside of SSL lib code.
More information about the Pkg-openssl-devel
mailing list