>> Could you complement back-trace with 'info reg' output?
>
> (gdb) bt
> #0 _x86_64_Camellia_encrypt () at cmll-x86_64.s:74
> #1 0x00007ffff7a7a4b4 in Camellia_cbc_encrypt () at cmll-x86_64.s:1686
> #2 0x00007fffffffca30 in ?? ()
> #3 0x000000000068e190 in ?? ()
> #4 0x0000000000000000 in ?? ()
> (gdb) info reg
> rax 0x90a464 9479268
> rbx 0x7ee5f47f 2128999551
> rcx 0x0 0
> rdx 0xcef1a9fe 3471944190
> rsi 0xa6 166
> rdi 0xaf 175
> rbp 0x7ffff7a793c0 0x7ffff7a793c0
> rsp 0x7fffffffadb8 0x7fffffffadb8
> r8 0x263e264d 641607245
> r9 0x34a1c456 883016790
> r10 0x6824eed3 1747250899
> r11 0xcef1a9fe 3471944190
> r12 0x68e180 6873472
> r13 0x68e180 6873472
> r14 0x7fffffffeff0 140737488351216
> r15 0x207fbfffffcb30 9147661865175856
> rip 0x7ffff7a78570 0x7ffff7a78570 <_x86_64_Camellia_encrypt+16>
For reference. What I wanted to verify is that effective data address in
failing instruction is at page boundary. It *is*, which confirms my
assumption that it's "runaway" pointer caused by bogus upper part
register that is supposed to hold key+64*grand_rounds.
>> Verify that following fixes the problem:
>>
>> --- crypto/camellia/asm/cmll-x86_64.pl 6 Apr 2009 15:13:16 -0000
>> +++ crypto/camellia/asm/cmll-x86_64.pl 12 Sep 2009 15:20:49 -0000
>> @@ -656,7 +656,7 @@
>> mov %rsi,$out # out argument
>> mov %r8,%rbx # ivp argument
>> mov %rcx,$key # key argument
>> - mov 272(%rcx),$keyend # grandRounds
>> + mov 272(%rcx),${keyend}d # grandRounds
>>
>> mov %r8,$_ivp
>> mov %rbp,$_rsp
>
> Yes, this patch fixes the problem.
Patch is applied. Case is being dismissed. A.
______________________________________________________________________
OpenSSL Project http://www.openssl.org
Development Mailing List [email protected]
Automated List Manager [email protected]