On Tue, 16 Feb 2016, Hisashi T Fujinaka wrote:> On Wed, 17 Feb 2016, Damien Miller wrote: > > > > Core was generated by `test_sshkey'. > > > Program terminated with signal SIGSEGV, Segmentation fault. > > > #0 0x000000000041273e in cert_parse (key=0x7f7ff7b120c0, > > > certbuf=0x7f7ff7b16200, b=0x7f7ff7b161b0) at sshkey.c:1896 > > > 1896 key->cert->principals[key->cert->nprincipals++] > > > principal; > > > > Could you do a "print *key->cert" to see what is going wrong here? > > (gdb) print *key->cert > $1 = {certblob = 0x7f7ff7b162a0, type = 2, serial = 5, key_id = 0x7f7ff7b18090 > "julius", nprincipals = 1, > principals = 0xfffffffff7b180a0, valid_after = 915145200, valid_before > 1293836400, critical = 0x7f7ff7b162f0, > extensions = 0x7f7ff7b16340, signature_key = 0x0}Thanks, but nothing appears wrong there. How about "print key->cert->principals[0]" - though I'm not sure how it could get to this point without reallocarray() returning a bad pointer. -d
On Wed, 17 Feb 2016, Damien Miller wrote:> On Tue, 16 Feb 2016, Hisashi T Fujinaka wrote: > >> On Wed, 17 Feb 2016, Damien Miller wrote: >> >>>> Core was generated by `test_sshkey'. >>>> Program terminated with signal SIGSEGV, Segmentation fault. >>>> #0 0x000000000041273e in cert_parse (key=0x7f7ff7b120c0, >>>> certbuf=0x7f7ff7b16200, b=0x7f7ff7b161b0) at sshkey.c:1896 >>>> 1896 key->cert->principals[key->cert->nprincipals++] >>>> principal; >>> >>> Could you do a "print *key->cert" to see what is going wrong here? >> >> (gdb) print *key->cert >> $1 = {certblob = 0x7f7ff7b162a0, type = 2, serial = 5, key_id = 0x7f7ff7b18090 >> "julius", nprincipals = 1, >> principals = 0xfffffffff7b180a0, valid_after = 915145200, valid_before >> 1293836400, critical = 0x7f7ff7b162f0, >> extensions = 0x7f7ff7b16340, signature_key = 0x0} > > Thanks, but nothing appears wrong there. How about > "print key->cert->principals[0]" - though I'm not sure how it could get > to this point without reallocarray() returning a bad pointer.Yeah: (gdb) print key->cert->principals[0] Cannot access memory at address 0xfffffffff7b180a0 -- Hisashi T Fujinaka - htodd at twofifty.com BSEE + BSChem + BAEnglish + MSCS + $2.50 = coffee
On Wed, 17 Feb 2016, Damien Miller wrote:> On Tue, 16 Feb 2016, Hisashi T Fujinaka wrote: > >> On Wed, 17 Feb 2016, Damien Miller wrote: >> >>>> Core was generated by `test_sshkey'. >>>> Program terminated with signal SIGSEGV, Segmentation fault. >>>> #0 0x000000000041273e in cert_parse (key=0x7f7ff7b120c0, >>>> certbuf=0x7f7ff7b16200, b=0x7f7ff7b161b0) at sshkey.c:1896 >>>> 1896 key->cert->principals[key->cert->nprincipals++] >>>> principal; >>> >>> Could you do a "print *key->cert" to see what is going wrong here? >> >> (gdb) print *key->cert >> $1 = {certblob = 0x7f7ff7b162a0, type = 2, serial = 5, key_id = 0x7f7ff7b18090 >> "julius", nprincipals = 1, >> principals = 0xfffffffff7b180a0, valid_after = 915145200, valid_before >> 1293836400, critical = 0x7f7ff7b162f0, >> extensions = 0x7f7ff7b16340, signature_key = 0x0} > > Thanks, but nothing appears wrong there. How about > "print key->cert->principals[0]" - though I'm not sure how it could get > to this point without reallocarray() returning a bad pointer.And in another "oh duh" moment, I think this dumped core on two different machines and I sent you the bt from the wrong machine. Here's the one from NetBSD-7. #0 0x00007f7ff630e55a in _lwp_kill () from /usr/lib/libc.so.12 (gdb) bt #0 0x00007f7ff630e55a in _lwp_kill () from /usr/lib/libc.so.12 #1 0x00007f7ff630e1e5 in abort () at /usr/src/lib/libc/stdlib/abort.c:74 #2 0x0000000000429992 in test_die () at regress/unittests/test_helper/test_helper.c:290 #3 0x0000000000406b0a in assert_int (file=file at entry=0x42a188 "regress/unittests/hostkeys/test_iterate.c", line=line at entry=163, a1=a1 at entry=0x42a1e0 "sshkey_load_public( test_data_file(expected[i].key_file), &expected[i].l.key, NULL)", a2=a2 at entry=0x42d2cf "0", aa1=-24, aa2=aa2 at entry=0, pred=pred at entry=TEST_EQ) at regress/unittests/test_helper/test_helper.c:419 #4 0x0000000000405783 in prepare_expected (n=61, expected=0x652060 <expected_full>) at regress/unittests/hostkeys/test_iterate.c:161 #5 0x0000000000405823 in test_iterate () at regress/unittests/hostkeys/test_iterate.c:980 #6 0x0000000000405259 in tests () at regress/unittests/hostkeys/tests.c:14 #7 0x0000000000429b7d in main (argc=3, argv=0x7f7fffffd0c8) at regress/unittests/test_helper/test_helper.c:162 (gdb) print *key->cert No symbol "key" in current context. -- Hisashi T Fujinaka - htodd at twofifty.com BSEE + BSChem + BAEnglish + MSCS + $2.50 = coffee
On Wed, 17 Feb 2016, Hisashi T Fujinaka wrote:> And in another "oh duh" moment, I think this dumped core on two different > machines and I sent you the bt from the wrong machine. Here's the one > from NetBSD-7. > > #0 0x00007f7ff630e55a in _lwp_kill () from /usr/lib/libc.so.12 > (gdb) bt > #0 0x00007f7ff630e55a in _lwp_kill () from /usr/lib/libc.so.12 > #1 0x00007f7ff630e1e5 in abort () at /usr/src/lib/libc/stdlib/abort.c:74 > #2 0x0000000000429992 in test_die () at > regress/unittests/test_helper/test_helper.c:290 > #3 0x0000000000406b0a in assert_int (file=file at entry=0x42a188 > "regress/unittests/hostkeys/test_iterate.c", line=line at entry=163, > a1=a1 at entry=0x42a1e0 "sshkey_load_public( > test_data_file(expected[i].key_file), &expected[i].l.key, NULL)", > a2=a2 at entry=0x42d2cf "0", aa1=-24, aa2=aa2 at entry=0,This one is failing a test assetion - there should be some more useful output available from the test itself. -d