Ben Laurie <[EMAIL PROTECTED]> writes: [Please keep me on the Cc:, since I'm not subscribed to openssl-dev. Thanks.]
> This patch removes typesafety by using casts with gay abandon. Why is > this necessary? More to the point, IMO it should not be necessary. I'm > not keen on introducing a patch with so many casts in it. I've just explained the need for this in a reply to Richard. If you see any way around this, I'm more than happy to implement it. > I'm also slightly puzzled by this: > > @@ -193,7 +193,7 @@ STACK *d2i_ASN1_SET(STACK **a, unsigned > > char *s; > > > > if (M_ASN1_D2I_end_sequence()) break; > > - if ((s=func(NULL,&c.p,c.slen,c.max-c.p)) == NULL) > > + if ((s=func(NULL,&c.p,c.slen)) == NULL) > > Why has an argument gone? I thought I had explained this above: > > Most of this stuff should be obvious, with two exceptions where this effort > > pointed out real errors, so this patch clearly has it's merrits: > > > > * In crypto/pem/pem_lib.c (PEM_ASN1_read_bio), the d2i function argument is > > called with four arguments in one place, but with only three (as the > > prototype suggests) in another. Removing the last argument in the first > > two calls allowed the testsuite to complete successfully, but the types > > don't match the prototype, so this is clearly wrong. Someone really > > familiar with this code needs to have a look. > > > > * The other mismatch occurs in crypto/asn1/a_set.c (d2i_ASN1_SET) where d2i > > is called with a superfluous fourth argument. All the d2i functions take only three arguments, so there must be something wrong here if it is called with 4 args in this one place. The other change above (to PEM_ASN1_read_bio) is almost certainly wrong, but something is clearly wrong there as well. This is the type of stuff you can catch with the full prototyping I implemented. Rainer ______________________________________________________________________ OpenSSL Project http://www.openssl.org Development Mailing List [EMAIL PROTECTED] Automated List Manager [EMAIL PROTECTED]