On Sat, Feb 27, 2016 at 03:04:21PM +0100, Andreas Metzler wrote: > Package: libcrypt-gcrypt-perl > Version: 1.26-3 > Severity: important
> the package FTBFS against libgcrypt 1.7.0 beta with the folowing error: > > Test Summary Report > ------------------- > t/01-cipher.t (Wstat: 11 Tests: 19 Failed: 0) > Non-zero wait status: 11 > Parse errors: Bad plan. You planned 20 tests but ran 19. Thanks for the warning and sorry for the earlier lack of action on this. The failure can be triggered with this: % perl -MCrypt::GCrypt -e '$c=Crypt::GCrypt->new(type=>"cipher",algorithm=>"aes");$c->start("encrypting"); $c->encrypt("a").$c->finish' which gets a SIGSEGV in libgcrypt. Backtrace below. Adding a $c->setkey('whatever') before calling encrypt() makes it go away. The test isn't trying to do anything meaningful at that point, it's just checking that it gets a warning when not calling $c->finish() or something like that. Later tests of actual encrypting pass. Is this something to be fixed on the libgcrypt side? I guess I can come up with a C test case if needed, but maybe you can cook up one easier? The perl side setkey() just seems to wrap gcry_cipher_setkey(). Core was generated by `debugperl -Iblib/lib -Iblib/arch -MCrypt::GCrypt -e $c=Crypt::GCrypt->new(type='. Program terminated with signal SIGSEGV, Segmentation fault. #0 0x0000000000000000 in ?? () (gdb) bt #0 0x0000000000000000 in ?? () #1 0x00007f5a5bce89c5 in _gcry_aes_cbc_enc (context=0x280a8e0, iv=0x280a6d0 "", outbuf_arg=<optimized out>, inbuf_arg=<optimized out>, nblocks=1, cbc_mac=0) at ../../cipher/rijndael.c:811 #2 0x00007f5a5bcc6565 in _gcry_cipher_cbc_encrypt (c=0x280a660, outbuf=outbuf@entry=0x27cf850 "a", '\017' <repeats 15 times>, outbuflen=outbuflen@entry=16, inbuf=inbuf@entry=0x2840650 "a", '\017' <repeats 15 times>, inbuflen=<optimized out>) at ../../cipher/cipher-cbc.c:65 #3 0x00007f5a5bcc5400 in cipher_encrypt (inbuflen=<optimized out>, inbuf=0x2840650 "a", '\017' <repeats 15 times>, outbuflen=16, outbuf=0x27cf850 "a", '\017' <repeats 15 times>, c=<optimized out>) at ../../cipher/cipher.c:826 #4 _gcry_cipher_encrypt (h=<optimized out>, out=out@entry=0x27cf850, outsize=outsize@entry=16, in=in@entry=0x2840650, inlen=<optimized out>, inlen@entry=16) at ../../cipher/cipher.c:913 #5 0x00007f5a5bcba91e in gcry_cipher_encrypt (h=<optimized out>, out=0x27cf850, outsize=16, in=0x2840650, inlen=16) at ../../src/visibility.c:828 #6 0x00007f5a5bfc1a53 in XS_Crypt__GCrypt_finish (my_perl=0x2785010, cv=0x27d47f0) at GCrypt.xs:439 #7 0x000000000050f456 in Perl_pp_entersub (my_perl=0x2785010) at pp_hot.c:3270 #8 0x00000000004da689 in Perl_runops_debug (my_perl=0x2785010) at dump.c:2234 #9 0x0000000000450e92 in S_run_body (oldscope=1, my_perl=0x2785010) at perl.c:2453 #10 perl_run (my_perl=0x2785010) at perl.c:2376 #11 0x000000000041d09b in main (argc=6, argv=0x7ffc0f9ebfe8, env=0x7ffc0f9ec020) at perlmain.c:116 -- Niko Tyni nt...@debian.org