Mailing List Archive

padlock + SIGSEGV
In some occasions I've noticed some segmentation fauls on padlock code. This
was using the debian libldap + gnutls13 + libgcrypt 1.4.0.

I'm trying to understand why this is happening, but I have no clue. Notice
that the stack changes after entering the "asm volatile". To make it more
interesting gnutls-cli compiled with gnutls13 and libgcrypt 1.4.0 works as
expected. gnutls_global_init() is used in both cases so it shouldn't be
initialization error. Any suggestions on why this might happen?

gdb ls
(gdb) break do_padlock
Breakpoint 4 at 0xb7958dca: file rijndael.c, line 2043.
(gdb) run -al /home/
Breakpoint 4 at 0xb79b4dca: file rijndael.c, line 2043.
[Switching to Thread -1210574656 (LWP 12034)]

Breakpoint 2, do_padlock (ctx=0xbfc3addc, decrypt_flag=0,
bx=0xbfc3afe8 "(�\006\b��\237������o��",
ax=0xb79f9ac8 "\001K�\"x�\2353\035Q\200\0206C�\232") at rijndael.c:2043
2043 {
(gdb) cont
Continuing.

Program received signal SIGSEGV, Segmentation fault.
0xb79b4e41 in do_padlock (ctx=0xbfc3ac5c, decrypt_flag=<value optimized out>,
bx=0xbfc3afe8 "(�\006\b��\237������o��", ax=0x1 <Address 0x1 out of
bounds>) at rijndael.c:2062
2062 asm volatile
(gdb)
(gdb) bt
#0 0xb79b4e41 in do_padlock (ctx=0xbfc3ac5c, decrypt_flag=<value optimized
out>,
bx=0xbfc3afe8 "(�\006\b��\237������o��", ax=0x1 <Address 0x1 out of
bounds>) at rijndael.c:2062
#1 0xb79b5442 in rijndael_encrypt (context=0xbfc3addc, b=0x1 <Address 0x1 out
of bounds>,
a=0xb79f9ac8 "\001K�\"x�\2353\035Q\200\0206C�\232") at rijndael.c:2091
#2 0xb79b5b54 in rijndael_setkey (context=0x808dee0,
key=0x80900e8 "\034L�g�5D\231j>#�=\0024���\b\b�\001\t\b ",
keylen=16) at rijndael.c:2288
#3 0xb79a1123 in _gcry_cipher_ctl (h=0x808de90, cmd=1, buffer=0x80900e8,
buflen=16) at cipher.c:774
#4 0xb7998e62 in gcry_cipher_ctl (h=0x808de90, cmd=1, buffer=0x80900e8,
buflen=16) at visibility.c:504
#5 0xb7b1f4d3 in ?? () from /usr/lib/libgnutls.so.13
#6 0x0808de90 in ?? ()
#7 0x00000001 in ?? ()
#8 0x080900e8 in ?? ()
#9 0x00000010 in ?? ()
#10 0x0806b1b8 in ?? ()
#11 0xb7b4c91c in ?? () from /usr/lib/libgnutls.so.13
#12 0xbfc3b0b4 in ?? ()
#13 0xb7affa72 in _gnutls_cipher_init () from /usr/lib/libgnutls.so.13
Backtrace stopped: frame did not save the PC
(gdb)


_______________________________________________
Gcrypt-devel mailing list
Gcrypt-devel@gnupg.org
http://lists.gnupg.org/mailman/listinfo/gcrypt-devel
Re: padlock + SIGSEGV [ In reply to ]
At Sun, 27 Jan 2008 12:08:47 +0200,
Nikos Mavrogiannopoulos wrote:
>
> In some occasions I've noticed some segmentation fauls on padlock code. This
> was using the debian libldap + gnutls13 + libgcrypt 1.4.0.
>
> I'm trying to understand why this is happening, but I have no clue. Notice
> that the stack changes after entering the "asm volatile". To make it more
> interesting gnutls-cli compiled with gnutls13 and libgcrypt 1.4.0 works as
> expected. gnutls_global_init() is used in both cases so it shouldn't be
> initialization error. Any suggestions on why this might happen?

Can you test if this was fixed in the SVN repository by:

2008-01-21 Marcus Brinkmann <marcus@g10code.de>

* hwfeatures.c (detect_ia32_gnuc): Fix inline asm.

It seems to be the same bug as was reported before.

Thanks,
Marcus


_______________________________________________
Gcrypt-devel mailing list
Gcrypt-devel@gnupg.org
http://lists.gnupg.org/mailman/listinfo/gcrypt-devel
Re: padlock + SIGSEGV [ In reply to ]
On Sunday 27 January 2008, Marcus Brinkmann wrote:

> Can you test if this was fixed in the SVN repository by:
>
> 2008-01-21 Marcus Brinkmann <marcus@g10code.de>
>
> * hwfeatures.c (detect_ia32_gnuc): Fix inline asm.
> It seems to be the same bug as was reported before.

No it doesn't seem to fix it. Note that this board uses the padlock engine
(via processor).

regards,
Nikos

_______________________________________________
Gcrypt-devel mailing list
Gcrypt-devel@gnupg.org
http://lists.gnupg.org/mailman/listinfo/gcrypt-devel
Re: padlock + SIGSEGV [ In reply to ]
At Sun, 27 Jan 2008 16:53:34 +0200,
Nikos Mavrogiannopoulos wrote:
>
> On Sunday 27 January 2008, Marcus Brinkmann wrote:
>
> > Can you test if this was fixed in the SVN repository by:
> >
> > 2008-01-21 Marcus Brinkmann <marcus@g10code.de>
> >
> > * hwfeatures.c (detect_ia32_gnuc): Fix inline asm.
> > It seems to be the same bug as was reported before.
>
> No it doesn't seem to fix it. Note that this board uses the padlock engine
> (via processor).

Sorry, I was confused.

Thanks,
Marcus


_______________________________________________
Gcrypt-devel mailing list
Gcrypt-devel@gnupg.org
http://lists.gnupg.org/mailman/listinfo/gcrypt-devel