Bug#758216: libmusicbrainz-discid-perl: FTBFS: *** stack smashing detected *** during tests

Damyan Ivanov dmn at debian.org
Mon Aug 18 11:00:37 UTC 2014


-=| Damyan Ivanov, 15.08.2014 16:06:45 +0300 |=-
> Package: libmusicbrainz-discid-perl
> Version: 0.03-4
> Severity: serious
> 
> libmusicbrainz-discid-perl failed to build with today's round of binNMUs for 
> perl 5.20:
> 
> Module::Build will be removed from the Perl core distribution in the next major release. Please install the separate libmodule-build-perl package. It is being used at Build, line 40.
> t/00use.t ..... ok
> t/05pod.t ..... ok
> *** stack smashing detected ***: /usr/bin/perl terminated
> ======= Backtrace: =========
> /lib/s390x-linux-gnu/libc.so.6(+0x8787c)[0x3fffd31287c]
> /lib/s390x-linux-gnu/libc.so.6(__fortify_fail+0x38)[0x3fffd399d70]
> /lib/s390x-linux-gnu/libc.so.6(+0x10ed36)[0x3fffd399d36]
> /«PKGBUILDDIR»/blib/arch/auto/MusicBrainz/DiscID/DiscID.so(+0x1946)[0x3fffd248946]
> /usr/lib/s390x-linux-gnu/libperl.so.5.20(Perl_pp_entersub+0x5d4)[0x3fffd5e359c]

Here's a stack trace on i386:

#0  0xf75d31ac in raise () from /lib/i386-linux-gnu/libc.so.6
#1  0xf75d4833 in abort () from /lib/i386-linux-gnu/libc.so.6
#2  0xf7611f58 in ?? () from /lib/i386-linux-gnu/libc.so.6
#3  0xf768b230 in __fortify_fail () from /lib/i386-linux-gnu/libc.so.6
#4  0xf768b1ea in __stack_chk_fail () from /lib/i386-linux-gnu/libc.so.6
#5  0xf756f8f4 in __stack_chk_fail_local ()
   from /libmusicbrainz-discid-perl-0.03/blib/arch/auto/MusicBrainz/DiscID/DiscID.so
#6  0xf756f3e7 in XS_MusicBrainz__DiscID_discid_put (my_perl=0x968e008, cv=0x9840278)
    at lib/MusicBrainz/DiscID.c:584
#7  0x0813d839 in Perl_pp_entersub (my_perl=0x968e008) at pp_hot.c:2795
#8  0x0810a6df in Perl_runops_debug (my_perl=0x968e008) at dump.c:2428
#9  0x0808af96 in S_run_body (oldscope=<optimized out>, my_perl=<optimized out>) at perl.c:2456
#10 perl_run (my_perl=0x968e008) at perl.c:2372
#11 0x0805fe4a in main (argc=2, argv=0xfff59204, env=0xfff59210) at perlmain.c:114

Building with DEB_BUILD_MAINT_OPTIONS=hardening=-stackprotectorstrong 
results in passing tests.

Here's the assembler code for the XS_MusicBrainz__DiscID_discid_put 
function (with default build flags, including stackprotectorstrong):

Dump of assembler code for function XS_MusicBrainz__DiscID_discid_put:
546     {
   0xf756ecf6 <+0>:     push   %ebp
   0xf756ecf7 <+1>:     mov    %esp,%ebp
   0xf756ecf9 <+3>:     push   %edi
   0xf756ecfa <+4>:     push   %esi
   0xf756ecfb <+5>:     push   %ebx
   0xf756ecfc <+6>:     sub    $0x1fc,%esp
   0xf756ed02 <+12>:    call   0xf756bbe0 <__x86.get_pc_thunk.bx>
   0xf756ed07 <+17>:    add    $0x32f9,%ebx
   0xf756ed0d <+23>:    mov    0x8(%ebp),%eax
   0xf756ed10 <+26>:    mov    %eax,-0x1fc(%ebp)
   0xf756ed16 <+32>:    mov    0xc(%ebp),%eax
   0xf756ed19 <+35>:    mov    %eax,-0x200(%ebp)
   0xf756ed1f <+41>:    mov    %gs:0x14,%eax
   0xf756ed25 <+47>:    mov    %eax,-0x1c(%ebp)
   0xf756ed28 <+50>:    xor    %eax,%eax

547         dVAR; dXSARGS;
   0xf756ed2a <+52>:    mov    -0x18(%ebx),%eax
   0xf756ed30 <+58>:    mov    (%eax),%eax
   0xf756ed32 <+60>:    sub    $0xc,%esp
   0xf756ed35 <+63>:    push   %eax
   0xf756ed36 <+64>:    call   0xf756ba60 <pthread_getspecific at plt>
   0xf756ed3b <+69>:    add    $0x10,%esp
   0xf756ed3e <+72>:    mov    (%eax),%eax
   0xf756ed40 <+74>:    mov    %eax,-0x1e8(%ebp)
   0xf756ed46 <+80>:    mov    -0x18(%ebx),%eax
   0xf756ed4c <+86>:    mov    (%eax),%eax
   0xf756ed4e <+88>:    sub    $0xc,%esp
   0xf756ed51 <+91>:    push   %eax
   0xf756ed52 <+92>:    call   0xf756ba60 <pthread_getspecific at plt>
   0xf756ed57 <+97>:    add    $0x10,%esp
   0xf756ed5a <+100>:   mov    %eax,%edx
   0xf756ed5c <+102>:   mov    0x44(%edx),%eax
   0xf756ed5f <+105>:   lea    -0x4(%eax),%ecx
   0xf756ed62 <+108>:   mov    %ecx,0x44(%edx)
   0xf756ed65 <+111>:   mov    (%eax),%eax
   0xf756ed67 <+113>:   mov    %eax,-0x1e4(%ebp)
   0xf756ed6d <+119>:   mov    -0x18(%ebx),%eax
   0xf756ed73 <+125>:   mov    (%eax),%eax
   0xf756ed75 <+127>:   sub    $0xc,%esp
   0xf756ed78 <+130>:   push   %eax
   0xf756ed79 <+131>:   call   0xf756ba60 <pthread_getspecific at plt>
   0xf756ed7e <+136>:   add    $0x10,%esp
   0xf756ed81 <+139>:   mov    0xc(%eax),%ecx
   0xf756ed84 <+142>:   mov    -0x1e4(%ebp),%eax
   0xf756ed8a <+148>:   lea    0x1(%eax),%edx
   0xf756ed8d <+151>:   mov    %edx,-0x1e4(%ebp)
   0xf756ed93 <+157>:   shl    $0x2,%eax
   0xf756ed96 <+160>:   add    %ecx,%eax
   0xf756ed98 <+162>:   mov    %eax,-0x1e0(%ebp)
   0xf756ed9e <+168>:   mov    -0x1e8(%ebp),%edx
   0xf756eda4 <+174>:   mov    -0x1e0(%ebp),%eax
   0xf756edaa <+180>:   sub    %eax,%edx
   0xf756edac <+182>:   mov    %edx,%eax
   0xf756edae <+184>:   sar    $0x2,%eax
   0xf756edb1 <+187>:   mov    %eax,-0x1dc(%ebp)

548         if (items < 4)
   0xf756edb7 <+193>:   cmpl   $0x3,-0x1dc(%ebp)
   0xf756edbe <+200>:   jg     0xf756edd5 <XS_MusicBrainz__DiscID_discid_put+223>

549            croak_xs_usage(cv,  "disc, first_track, sectors, offsets ");
   0xf756edc0 <+202>:   sub    $0x8,%esp
   0xf756edc3 <+205>:   lea    -0x24a4(%ebx),%eax
   0xf756edc9 <+211>:   push   %eax
   0xf756edca <+212>:   pushl  -0x200(%ebp)
   0xf756edd0 <+218>:   call   0xf756bae0 <Perl_croak_xs_usage at plt>

550         {
551             DiscId *        disc;
552             int     first_track = (int)SvIV(ST(1))
   0xf756edd5 <+223>:   mov    -0x18(%ebx),%eax
   0xf756eddb <+229>:   mov    (%eax),%eax
   0xf756eddd <+231>:   sub    $0xc,%esp
   0xf756ede0 <+234>:   push   %eax
   0xf756ede1 <+235>:   call   0xf756ba60 <pthread_getspecific at plt>
   0xf756ede6 <+240>:   add    $0x10,%esp
   0xf756ede9 <+243>:   mov    0xc(%eax),%eax
   0xf756edec <+246>:   mov    -0x1e4(%ebp),%edx
   0xf756edf2 <+252>:   add    $0x1,%edx
   0xf756edf5 <+255>:   shl    $0x2,%edx
   0xf756edf8 <+258>:   add    %edx,%eax
   0xf756edfa <+260>:   mov    (%eax),%eax
   0xf756edfc <+262>:   mov    0x8(%eax),%eax
   0xf756edff <+265>:   and    $0x200100,%eax
   0xf756ee04 <+270>:   cmp    $0x100,%eax
   0xf756ee09 <+275>:   jne    0xf756ee3c <XS_MusicBrainz__DiscID_discid_put+326>
   0xf756ee0b <+277>:   mov    -0x18(%ebx),%eax
   0xf756ee11 <+283>:   mov    (%eax),%eax
   0xf756ee13 <+285>:   sub    $0xc,%esp
   0xf756ee16 <+288>:   push   %eax
   0xf756ee17 <+289>:   call   0xf756ba60 <pthread_getspecific at plt>
   0xf756ee1c <+294>:   add    $0x10,%esp
   0xf756ee1f <+297>:   mov    0xc(%eax),%eax
   0xf756ee22 <+300>:   mov    -0x1e4(%ebp),%edx
   0xf756ee28 <+306>:   add    $0x1,%edx
   0xf756ee2b <+309>:   shl    $0x2,%edx
   0xf756ee2e <+312>:   add    %edx,%eax
   0xf756ee30 <+314>:   mov    (%eax),%eax
   0xf756ee32 <+316>:   mov    (%eax),%eax
   0xf756ee34 <+318>:   mov    0x14(%eax),%edx
   0xf756ee37 <+321>:   mov    0x10(%eax),%eax
   0xf756ee3a <+324>:   jmp    0xf756ee86 <XS_MusicBrainz__DiscID_discid_put+400>
   0xf756ee3c <+326>:   mov    -0x18(%ebx),%eax
   0xf756ee42 <+332>:   mov    (%eax),%eax
   0xf756ee44 <+334>:   sub    $0xc,%esp
   0xf756ee47 <+337>:   push   %eax
   0xf756ee48 <+338>:   call   0xf756ba60 <pthread_getspecific at plt>
   0xf756ee4d <+343>:   add    $0x10,%esp
   0xf756ee50 <+346>:   mov    0xc(%eax),%eax
   0xf756ee53 <+349>:   mov    -0x1e4(%ebp),%edx
   0xf756ee59 <+355>:   add    $0x1,%edx
   0xf756ee5c <+358>:   shl    $0x2,%edx
   0xf756ee5f <+361>:   add    %edx,%eax
   0xf756ee61 <+363>:   mov    (%eax),%esi
   0xf756ee63 <+365>:   mov    -0x18(%ebx),%eax
   0xf756ee69 <+371>:   mov    (%eax),%eax
   0xf756ee6b <+373>:   sub    $0xc,%esp
   0xf756ee6e <+376>:   push   %eax
   0xf756ee6f <+377>:   call   0xf756ba60 <pthread_getspecific at plt>
   0xf756ee74 <+382>:   add    $0x10,%esp
   0xf756ee77 <+385>:   sub    $0x4,%esp
   0xf756ee7a <+388>:   push   $0x2
   0xf756ee7c <+390>:   push   %esi
   0xf756ee7d <+391>:   push   %eax
   0xf756ee7e <+392>:   call   0xf756b9e0 <Perl_sv_2iv_flags at plt>
   0xf756ee83 <+397>:   add    $0x10,%esp
   0xf756ee86 <+400>:   mov    %eax,-0x1d8(%ebp)

553     ;
554             int     sectors = (int)SvIV(ST(2))
   0xf756ee8c <+406>:   mov    -0x18(%ebx),%eax
   0xf756ee92 <+412>:   mov    (%eax),%eax
   0xf756ee94 <+414>:   sub    $0xc,%esp
   0xf756ee97 <+417>:   push   %eax
   0xf756ee98 <+418>:   call   0xf756ba60 <pthread_getspecific at plt>
   0xf756ee9d <+423>:   add    $0x10,%esp
   0xf756eea0 <+426>:   mov    0xc(%eax),%eax
   0xf756eea3 <+429>:   mov    -0x1e4(%ebp),%edx
   0xf756eea9 <+435>:   add    $0x2,%edx
   0xf756eeac <+438>:   shl    $0x2,%edx
   0xf756eeaf <+441>:   add    %edx,%eax
   0xf756eeb1 <+443>:   mov    (%eax),%eax
   0xf756eeb3 <+445>:   mov    0x8(%eax),%eax
   0xf756eeb6 <+448>:   and    $0x200100,%eax
   0xf756eebb <+453>:   cmp    $0x100,%eax
   0xf756eec0 <+458>:   jne    0xf756eef3 <XS_MusicBrainz__DiscID_discid_put+509>
   0xf756eec2 <+460>:   mov    -0x18(%ebx),%eax
   0xf756eec8 <+466>:   mov    (%eax),%eax
   0xf756eeca <+468>:   sub    $0xc,%esp
   0xf756eecd <+471>:   push   %eax
   0xf756eece <+472>:   call   0xf756ba60 <pthread_getspecific at plt>
   0xf756eed3 <+477>:   add    $0x10,%esp
   0xf756eed6 <+480>:   mov    0xc(%eax),%eax
   0xf756eed9 <+483>:   mov    -0x1e4(%ebp),%edx
   0xf756eedf <+489>:   add    $0x2,%edx
   0xf756eee2 <+492>:   shl    $0x2,%edx
   0xf756eee5 <+495>:   add    %edx,%eax
   0xf756eee7 <+497>:   mov    (%eax),%eax
   0xf756eee9 <+499>:   mov    (%eax),%eax
   0xf756eeeb <+501>:   mov    0x14(%eax),%edx
   0xf756eeee <+504>:   mov    0x10(%eax),%eax
   0xf756eef1 <+507>:   jmp    0xf756ef3d <XS_MusicBrainz__DiscID_discid_put+583>
   0xf756eef3 <+509>:   mov    -0x18(%ebx),%eax
   0xf756eef9 <+515>:   mov    (%eax),%eax
   0xf756eefb <+517>:   sub    $0xc,%esp
   0xf756eefe <+520>:   push   %eax
   0xf756eeff <+521>:   call   0xf756ba60 <pthread_getspecific at plt>
   0xf756ef04 <+526>:   add    $0x10,%esp
   0xf756ef07 <+529>:   mov    0xc(%eax),%eax
   0xf756ef0a <+532>:   mov    -0x1e4(%ebp),%edx
   0xf756ef10 <+538>:   add    $0x2,%edx
   0xf756ef13 <+541>:   shl    $0x2,%edx
   0xf756ef16 <+544>:   add    %edx,%eax
   0xf756ef18 <+546>:   mov    (%eax),%esi
   0xf756ef1a <+548>:   mov    -0x18(%ebx),%eax
   0xf756ef20 <+554>:   mov    (%eax),%eax
   0xf756ef22 <+556>:   sub    $0xc,%esp
   0xf756ef25 <+559>:   push   %eax
   0xf756ef26 <+560>:   call   0xf756ba60 <pthread_getspecific at plt>
   0xf756ef2b <+565>:   add    $0x10,%esp
   0xf756ef2e <+568>:   sub    $0x4,%esp
   0xf756ef31 <+571>:   push   $0x2
   0xf756ef33 <+573>:   push   %esi
   0xf756ef34 <+574>:   push   %eax
   0xf756ef35 <+575>:   call   0xf756b9e0 <Perl_sv_2iv_flags at plt>
   0xf756ef3a <+580>:   add    $0x10,%esp
   0xf756ef3d <+583>:   mov    %eax,-0x1d4(%ebp)

555     ;
556     #line 128 "lib/MusicBrainz/DiscID.xs"
557               int i, last_track, offsets[100];
558     #line 559 "lib/MusicBrainz/DiscID.c"
559             int     RETVAL;
560             dXSTARG;
   0xf756ef43 <+589>:   mov    -0x18(%ebx),%eax
   0xf756ef49 <+595>:   mov    (%eax),%eax
   0xf756ef4b <+597>:   sub    $0xc,%esp
   0xf756ef4e <+600>:   push   %eax
   0xf756ef4f <+601>:   call   0xf756ba60 <pthread_getspecific at plt>
   0xf756ef54 <+606>:   add    $0x10,%esp
   0xf756ef57 <+609>:   mov    0x4(%eax),%eax
   0xf756ef5a <+612>:   movzbl 0x13(%eax),%eax
   0xf756ef5e <+616>:   movzbl %al,%eax
   0xf756ef61 <+619>:   and    $0x4,%eax
   0xf756ef64 <+622>:   test   %eax,%eax
   0xf756ef66 <+624>:   je     0xf756efa2 <XS_MusicBrainz__DiscID_discid_put+684>
   0xf756ef68 <+626>:   mov    -0x18(%ebx),%eax
   0xf756ef6e <+632>:   mov    (%eax),%eax
   0xf756ef70 <+634>:   sub    $0xc,%esp
   0xf756ef73 <+637>:   push   %eax
   0xf756ef74 <+638>:   call   0xf756ba60 <pthread_getspecific at plt>
   0xf756ef79 <+643>:   add    $0x10,%esp
   0xf756ef7c <+646>:   mov    0x8(%eax),%esi
   0xf756ef7f <+649>:   mov    -0x18(%ebx),%eax
   0xf756ef85 <+655>:   mov    (%eax),%eax
   0xf756ef87 <+657>:   sub    $0xc,%esp
   0xf756ef8a <+660>:   push   %eax
   0xf756ef8b <+661>:   call   0xf756ba60 <pthread_getspecific at plt>
   0xf756ef90 <+666>:   add    $0x10,%esp
   0xf756ef93 <+669>:   mov    0x4(%eax),%eax
   0xf756ef96 <+672>:   mov    0xc(%eax),%eax
   0xf756ef99 <+675>:   shl    $0x2,%eax
   0xf756ef9c <+678>:   add    %esi,%eax
   0xf756ef9e <+680>:   mov    (%eax),%eax
   0xf756efa0 <+682>:   jmp    0xf756efc2 <XS_MusicBrainz__DiscID_discid_put+716>
   0xf756efa2 <+684>:   mov    -0x18(%ebx),%eax
   0xf756efa8 <+690>:   mov    (%eax),%eax
   0xf756efaa <+692>:   sub    $0xc,%esp
   0xf756efad <+695>:   push   %eax
   0xf756efae <+696>:   call   0xf756ba60 <pthread_getspecific at plt>
   0xf756efb3 <+701>:   add    $0x10,%esp
   0xf756efb6 <+704>:   sub    $0xc,%esp
   0xf756efb9 <+707>:   push   %eax
   0xf756efba <+708>:   call   0xf756bbc0 <Perl_sv_newmortal at plt>
   0xf756efbf <+713>:   add    $0x10,%esp
   0xf756efc2 <+716>:   mov    %eax,-0x1d0(%ebp)

561     
562             if (SvROK(ST(0)) && sv_derived_from(ST(0), "DiscIdPtr")) {
   0xf756efc8 <+722>:   mov    -0x18(%ebx),%eax
   0xf756efce <+728>:   mov    (%eax),%eax
   0xf756efd0 <+730>:   sub    $0xc,%esp
   0xf756efd3 <+733>:   push   %eax
   0xf756efd4 <+734>:   call   0xf756ba60 <pthread_getspecific at plt>
   0xf756efd9 <+739>:   add    $0x10,%esp
   0xf756efdc <+742>:   mov    0xc(%eax),%eax
   0xf756efdf <+745>:   mov    -0x1e4(%ebp),%edx
   0xf756efe5 <+751>:   shl    $0x2,%edx
   0xf756efe8 <+754>:   add    %edx,%eax
   0xf756efea <+756>:   mov    (%eax),%eax
   0xf756efec <+758>:   mov    0x8(%eax),%eax
   0xf756efef <+761>:   and    $0x800,%eax
   0xf756eff4 <+766>:   test   %eax,%eax
   0xf756eff6 <+768>:   je     0xf756f128 <XS_MusicBrainz__DiscID_discid_put+1074>
   0xf756effc <+774>:   mov    -0x18(%ebx),%eax
   0xf756f002 <+780>:   mov    (%eax),%eax
   0xf756f004 <+782>:   sub    $0xc,%esp
   0xf756f007 <+785>:   push   %eax
   0xf756f008 <+786>:   call   0xf756ba60 <pthread_getspecific at plt>
   0xf756f00d <+791>:   add    $0x10,%esp
   0xf756f010 <+794>:   mov    0xc(%eax),%eax
   0xf756f013 <+797>:   mov    -0x1e4(%ebp),%edx
   0xf756f019 <+803>:   shl    $0x2,%edx
   0xf756f01c <+806>:   add    %edx,%eax
   0xf756f01e <+808>:   mov    (%eax),%esi
   0xf756f020 <+810>:   mov    -0x18(%ebx),%eax
   0xf756f026 <+816>:   mov    (%eax),%eax
   0xf756f028 <+818>:   sub    $0xc,%esp
   0xf756f02b <+821>:   push   %eax
   0xf756f02c <+822>:   call   0xf756ba60 <pthread_getspecific at plt>
   0xf756f031 <+827>:   add    $0x10,%esp
   0xf756f034 <+830>:   mov    %eax,%edx
   0xf756f036 <+832>:   sub    $0x4,%esp
   0xf756f039 <+835>:   lea    -0x26f4(%ebx),%eax
   0xf756f03f <+841>:   push   %eax
   0xf756f040 <+842>:   push   %esi
   0xf756f041 <+843>:   push   %edx
   0xf756f042 <+844>:   call   0xf756ba00 <Perl_sv_derived_from at plt>
   0xf756f047 <+849>:   add    $0x10,%esp
   0xf756f04a <+852>:   test   %al,%al
   0xf756f04c <+854>:   je     0xf756f128 <XS_MusicBrainz__DiscID_discid_put+1074>
   0xf756f11b <+1061>:  nop

563                 IV tmp = SvIV((SV*)SvRV(ST(0)));
   0xf756f052 <+860>:   mov    -0x18(%ebx),%eax
   0xf756f058 <+866>:   mov    (%eax),%eax
   0xf756f05a <+868>:   sub    $0xc,%esp
   0xf756f05d <+871>:   push   %eax
   0xf756f05e <+872>:   call   0xf756ba60 <pthread_getspecific at plt>
   0xf756f063 <+877>:   add    $0x10,%esp
   0xf756f066 <+880>:   mov    0xc(%eax),%eax
   0xf756f069 <+883>:   mov    -0x1e4(%ebp),%edx
   0xf756f06f <+889>:   shl    $0x2,%edx
   0xf756f072 <+892>:   add    %edx,%eax
   0xf756f074 <+894>:   mov    (%eax),%eax
   0xf756f076 <+896>:   mov    0xc(%eax),%eax
   0xf756f079 <+899>:   mov    0x8(%eax),%eax
   0xf756f07c <+902>:   and    $0x200100,%eax
   0xf756f081 <+907>:   cmp    $0x100,%eax
   0xf756f086 <+912>:   jne    0xf756f0b9 <XS_MusicBrainz__DiscID_discid_put+963>
   0xf756f088 <+914>:   mov    -0x18(%ebx),%eax
   0xf756f08e <+920>:   mov    (%eax),%eax
   0xf756f090 <+922>:   sub    $0xc,%esp
   0xf756f093 <+925>:   push   %eax
   0xf756f094 <+926>:   call   0xf756ba60 <pthread_getspecific at plt>
   0xf756f099 <+931>:   add    $0x10,%esp
   0xf756f09c <+934>:   mov    0xc(%eax),%eax
   0xf756f09f <+937>:   mov    -0x1e4(%ebp),%edx
   0xf756f0a5 <+943>:   shl    $0x2,%edx
   0xf756f0a8 <+946>:   add    %edx,%eax
   0xf756f0aa <+948>:   mov    (%eax),%eax
   0xf756f0ac <+950>:   mov    0xc(%eax),%eax
   0xf756f0af <+953>:   mov    (%eax),%eax
   0xf756f0b1 <+955>:   mov    0x14(%eax),%edx
   0xf756f0b4 <+958>:   mov    0x10(%eax),%eax
   0xf756f0b7 <+961>:   jmp    0xf756f103 <XS_MusicBrainz__DiscID_discid_put+1037>
   0xf756f0b9 <+963>:   mov    -0x18(%ebx),%eax
   0xf756f0bf <+969>:   mov    (%eax),%eax
   0xf756f0c1 <+971>:   sub    $0xc,%esp
   0xf756f0c4 <+974>:   push   %eax
   0xf756f0c5 <+975>:   call   0xf756ba60 <pthread_getspecific at plt>
   0xf756f0ca <+980>:   add    $0x10,%esp
   0xf756f0cd <+983>:   mov    0xc(%eax),%eax
   0xf756f0d0 <+986>:   mov    -0x1e4(%ebp),%edx
   0xf756f0d6 <+992>:   shl    $0x2,%edx
   0xf756f0d9 <+995>:   add    %edx,%eax
   0xf756f0db <+997>:   mov    (%eax),%eax
   0xf756f0dd <+999>:   mov    0xc(%eax),%esi
   0xf756f0e0 <+1002>:  mov    -0x18(%ebx),%eax
   0xf756f0e6 <+1008>:  mov    (%eax),%eax
   0xf756f0e8 <+1010>:  sub    $0xc,%esp
   0xf756f0eb <+1013>:  push   %eax
   0xf756f0ec <+1014>:  call   0xf756ba60 <pthread_getspecific at plt>
   0xf756f0f1 <+1019>:  add    $0x10,%esp
   0xf756f0f4 <+1022>:  sub    $0x4,%esp
   0xf756f0f7 <+1025>:  push   $0x2
   0xf756f0f9 <+1027>:  push   %esi
   0xf756f0fa <+1028>:  push   %eax
   0xf756f0fb <+1029>:  call   0xf756b9e0 <Perl_sv_2iv_flags at plt>
   0xf756f100 <+1034>:  add    $0x10,%esp
   0xf756f103 <+1037>:  mov    %eax,-0x1c0(%ebp)
   0xf756f109 <+1043>:  mov    %edx,-0x1bc(%ebp)

564                 disc = INT2PTR(DiscId *,tmp);
   0xf756f10f <+1049>:  mov    -0x1c0(%ebp),%eax
   0xf756f115 <+1055>:  mov    %eax,-0x1cc(%ebp)

565             }
566             else
567                 Perl_croak(aTHX_ "%s: %s is not of type %s",
   0xf756f128 <+1074>:  mov    -0x18(%ebx),%eax
   0xf756f12e <+1080>:  mov    (%eax),%eax
   0xf756f130 <+1082>:  sub    $0xc,%esp
   0xf756f133 <+1085>:  push   %eax
   0xf756f134 <+1086>:  call   0xf756ba60 <pthread_getspecific at plt>
   0xf756f139 <+1091>:  add    $0x10,%esp
   0xf756f13c <+1094>:  mov    %eax,%edx
   0xf756f13e <+1096>:  sub    $0xc,%esp
   0xf756f141 <+1099>:  lea    -0x26f4(%ebx),%eax
   0xf756f147 <+1105>:  push   %eax
   0xf756f148 <+1106>:  lea    -0x26ea(%ebx),%eax
   0xf756f14e <+1112>:  push   %eax
   0xf756f14f <+1113>:  lea    -0x247c(%ebx),%eax
   0xf756f155 <+1119>:  push   %eax
   0xf756f156 <+1120>:  lea    -0x26c3(%ebx),%eax
   0xf756f15c <+1126>:  push   %eax
   0xf756f15d <+1127>:  push   %edx
   0xf756f15e <+1128>:  call   0xf756bb00 <Perl_croak at plt>

568                             "MusicBrainz::DiscID::discid_put",
569                             "disc", "DiscIdPtr")
570     ;
571     #line 130 "lib/MusicBrainz/DiscID.xs"
572               for (i=0;i<100;i++);
573                   offsets[i] = 0;
574         for (i=3; i<items; i++) {
575             offsets[i-2] = (int)SvIV(ST(i));
576         }
577         offsets[0] = sectors;
578         last_track = items - 2 - first_track;
579         RETVAL = discid_put( disc, first_track, last_track, offsets );
580     #line 581 "lib/MusicBrainz/DiscID.c"
581             XSprePUSH; PUSHi((IV)RETVAL);
   0xf756f2c4 <+1486>:  mov    -0x18(%ebx),%eax
   0xf756f2ca <+1492>:  mov    (%eax),%eax
   0xf756f2cc <+1494>:  sub    $0xc,%esp
   0xf756f2cf <+1497>:  push   %eax
   0xf756f2d0 <+1498>:  call   0xf756ba60 <pthread_getspecific at plt>
   0xf756f2d5 <+1503>:  add    $0x10,%esp
   0xf756f2d8 <+1506>:  mov    0xc(%eax),%eax
   0xf756f2db <+1509>:  mov    -0x1e4(%ebp),%edx
   0xf756f2e1 <+1515>:  add    $0x3fffffff,%edx
   0xf756f2e7 <+1521>:  shl    $0x2,%edx
   0xf756f2ea <+1524>:  add    %edx,%eax
   0xf756f2ec <+1526>:  mov    %eax,-0x1e8(%ebp)
   0xf756f2f2 <+1532>:  mov    -0x1c4(%ebp),%eax
   0xf756f2f8 <+1538>:  mov    %eax,%esi
   0xf756f2fa <+1540>:  mov    %eax,%edi
   0xf756f2fc <+1542>:  sar    $0x1f,%edi
   0xf756f2ff <+1545>:  mov    -0x18(%ebx),%eax
   0xf756f305 <+1551>:  mov    (%eax),%eax
   0xf756f307 <+1553>:  sub    $0xc,%esp
   0xf756f30a <+1556>:  push   %eax
   0xf756f30b <+1557>:  call   0xf756ba60 <pthread_getspecific at plt>
   0xf756f310 <+1562>:  add    $0x10,%esp
   0xf756f313 <+1565>:  push   %edi
   0xf756f314 <+1566>:  push   %esi
   0xf756f315 <+1567>:  pushl  -0x1d0(%ebp)
   0xf756f31b <+1573>:  push   %eax
   0xf756f31c <+1574>:  call   0xf756bba0 <Perl_sv_setiv at plt>
   0xf756f321 <+1579>:  add    $0x10,%esp
   0xf756f324 <+1582>:  mov    -0x1d0(%ebp),%eax
   0xf756f32a <+1588>:  mov    0x8(%eax),%eax
   0xf756f32d <+1591>:  and    $0x400000,%eax
   0xf756f332 <+1596>:  test   %eax,%eax
   0xf756f334 <+1598>:  setne  %al
   0xf756f337 <+1601>:  movzbl %al,%eax
   0xf756f33a <+1604>:  test   %eax,%eax
   0xf756f33c <+1606>:  je     0xf756f364 <XS_MusicBrainz__DiscID_discid_put+1646>
   0xf756f33e <+1608>:  mov    -0x18(%ebx),%eax
   0xf756f344 <+1614>:  mov    (%eax),%eax
   0xf756f346 <+1616>:  sub    $0xc,%esp
   0xf756f349 <+1619>:  push   %eax
   0xf756f34a <+1620>:  call   0xf756ba60 <pthread_getspecific at plt>
   0xf756f34f <+1625>:  add    $0x10,%esp
   0xf756f352 <+1628>:  sub    $0x8,%esp
   0xf756f355 <+1631>:  pushl  -0x1d0(%ebp)
   0xf756f35b <+1637>:  push   %eax
   0xf756f35c <+1638>:  call   0xf756bb50 <Perl_mg_set at plt>
   0xf756f361 <+1643>:  add    $0x10,%esp
   0xf756f364 <+1646>:  addl   $0x4,-0x1e8(%ebp)
   0xf756f36b <+1653>:  mov    -0x1e8(%ebp),%eax
   0xf756f371 <+1659>:  mov    -0x1d0(%ebp),%edx
   0xf756f377 <+1665>:  mov    %edx,(%eax)

582         }
583         XSRETURN(1);
   0xf756f379 <+1667>:  movl   $0x1,-0x1b8(%ebp)
   0xf756f383 <+1677>:  movl   $0x0,-0x1b4(%ebp)
   0xf756f38d <+1687>:  mov    -0x18(%ebx),%eax
   0xf756f393 <+1693>:  mov    (%eax),%eax
   0xf756f395 <+1695>:  sub    $0xc,%esp
   0xf756f398 <+1698>:  push   %eax
   0xf756f399 <+1699>:  call   0xf756ba60 <pthread_getspecific at plt>
   0xf756f39e <+1704>:  add    $0x10,%esp
   0xf756f3a1 <+1707>:  mov    %eax,%esi
   0xf756f3a3 <+1709>:  mov    -0x18(%ebx),%eax
   0xf756f3a9 <+1715>:  mov    (%eax),%eax
   0xf756f3ab <+1717>:  sub    $0xc,%esp
   0xf756f3ae <+1720>:  push   %eax
   0xf756f3af <+1721>:  call   0xf756ba60 <pthread_getspecific at plt>
   0xf756f3b4 <+1726>:  add    $0x10,%esp
   0xf756f3b7 <+1729>:  mov    0xc(%eax),%eax
   0xf756f3ba <+1732>:  mov    -0x1b8(%ebp),%ecx
   0xf756f3c0 <+1738>:  mov    -0x1e4(%ebp),%edx
   0xf756f3c6 <+1744>:  add    %ecx,%edx
   0xf756f3c8 <+1746>:  add    $0x3fffffff,%edx
   0xf756f3ce <+1752>:  shl    $0x2,%edx
   0xf756f3d1 <+1755>:  add    %edx,%eax
   0xf756f3d3 <+1757>:  mov    %eax,(%esi)
   0xf756f3d5 <+1759>:  nop

584     }
   0xf756f3d6 <+1760>:  mov    -0x1c(%ebp),%eax
   0xf756f3d9 <+1763>:  xor    %gs:0x14,%eax
   0xf756f3e0 <+1770>:  je     0xf756f3e7 <XS_MusicBrainz__DiscID_discid_put+1777>
   0xf756f3e2 <+1772>:  call   0xf756f8e0 <__stack_chk_fail_local>
   0xf756f3e7 <+1777>:  lea    -0xc(%ebp),%esp
   0xf756f3ea <+1780>:  pop    %ebx
   0xf756f3eb <+1781>:  pop    %esi
   0xf756f3ec <+1782>:  pop    %edi
   0xf756f3ed <+1783>:  pop    %ebp
   0xf756f3ee <+1784>:  ret    

End of assembler dump.

Sorry, no idea where to look :/



More information about the pkg-perl-maintainers mailing list