In message <[EMAIL PROTECTED]> on Wed, 27 Nov 2002 00:14:42 +0100, Andy 
Polyakov <[EMAIL PROTECTED]> said:

appro> I managed to reproduce the problem under nue (IA-64 emulator for Linux)
appro> and with gcc 2.96 (the one found in nue-fs-1.2-1). It's a compiler bug:
appro> 
appro> *** ./crypto/asn1/a_d2i_fp.c.orig        Sun Nov 24 18:14:40 2002
appro> --- ./crypto/asn1/a_d2i_fp.c     Sun Nov 24 18:15:16 2002
appro> ***************
appro> *** 149,155 ****
appro>          ASN1_CTX c;
appro>          int want=HEADER_SIZE;
appro>          int eos=0;
appro> !        int off=0;
appro>          int len=0;
appro>   
appro>          b=BUF_MEM_new();
appro> --- 149,155 ----
appro>          ASN1_CTX c;
appro>          int want=HEADER_SIZE;
appro>          int eos=0;
appro> !        size_t off=0;
appro>          int len=0;
appro>   
appro>          b=BUF_MEM_new();

Uhmm, I'm sorry, exactly what kind of difference does that make?
Since it's otherwise used with ints (len and i, mostly), and size_t
usually is unsigned, that becomes quite a mix of unsigned vs. signed.

appro> *** ./crypto/aes/aes_cbc.c.orig  Sat Nov 23 00:16:50 2002
appro> --- ./crypto/aes/aes_cbc.c       Sun Nov 24 14:54:31 2002
appro> ***************
appro> *** 64,70 ****
appro>                       unsigned char *ivec, const int enc) {
appro>   
appro>          unsigned long n;
appro> !        unsigned long len = length;
appro>          unsigned char tmp[AES_BLOCK_SIZE];
appro>   
appro>          assert(in && out && key && ivec);
appro> --- 64,70 ----
appro>                       unsigned char *ivec, const int enc) {
appro>   
appro>          unsigned long n;
appro> !        long len = length;
appro>          unsigned char tmp[AES_BLOCK_SIZE];
appro>   
appro>          assert(in && out && key && ivec);

Same problem.

I'll have to analyse the rest tomorrow.

In any case, if those are caused by compiler bugs, I'd say that the
compiler in question is automagically rejected and needs to be fixed.
I can't see that there's any excuse to change OpenSSL's code because
the compiler is buggy...

And yes, you're right, there are other problems, especially in Windows
64bit, where all ints and longs are 32 bit wide, except for size_t
which is 64 bits...

-- 
Richard Levitte   \ Spannvägen 38, II \ [EMAIL PROTECTED]
Redakteur@Stacken  \ S-168 35  BROMMA  \ T: +46-8-26 52 47
                    \      SWEDEN       \ or +46-708-26 53 44
Procurator Odiosus Ex Infernis                -- [EMAIL PROTECTED]
Member of the OpenSSL development team: http://www.openssl.org/

Unsolicited commercial email is subject to an archival fee of $400.
See <http://www.stacken.kth.se/~levitte/mail/> for more info.
______________________________________________________________________
OpenSSL Project                                 http://www.openssl.org
Development Mailing List                       [EMAIL PROTECTED]
Automated List Manager                           [EMAIL PROTECTED]

Reply via email to