Mailing List Archive

crash with simple template
Hello embperl,

OS: CentoS 4.4/x86_64
Embperl: 2.2.0
Template: in attache

(gdb) run ./embpexec.pl crash.html.1
Starting program: /usr/bin/perl ./embpexec.pl crash.html.1
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
[Thread debugging using libthread_db enabled]
[New Thread 182908350080 (LWP 28855)]
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)

Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 182908350080 (LWP 28855)]
0x0000002a992af8f7 in EMBPERL2_Attr_selfValue (a=0x6f8730, pDomTree=0x81a638, pAttr=0x95fda8, nRepeatLevel=0, ppAttr=0x7fbffff0c8) at epdom.c:4330
4330 return Ndx2String (pAttr -> xValue) ;
(gdb) bt
#0 0x0000002a992af8f7 in EMBPERL2_Attr_selfValue (a=0x6f8730, pDomTree=0x81a638, pAttr=0x95fda8, nRepeatLevel=0, ppAttr=0x7fbffff0c8) at epdom.c:4330
#1 0x0000002a99290f50 in XS_XML__Embperl__DOM__Attr_iValue (my_perl=0x504010, cv=Variable "cv" is not available.
) at DOM.xs:408
#2 0x0000002a9570a91b in Perl_pp_entersub () from /usr/lib64/perl5/5.8.5/x86_64-linux-thread-multi/CORE/libperl.so
#3 0x0000002a956ee86a in Perl_runops_debug () from /usr/lib64/perl5/5.8.5/x86_64-linux-thread-multi/CORE/libperl.so
#4 0x0000002a956a6851 in Perl_call_sv () from /usr/lib64/perl5/5.8.5/x86_64-linux-thread-multi/CORE/libperl.so
#5 0x0000002a9929bc1d in EMBPERL2_CallStoredCV (r=0x8a6a30, sArg=Variable "sArg" is not available.
) at epeval.c:759
#6 0x0000002a992b638f in embperl_Execute (r=0x8a6a30, xSrcDomTree=Variable "xSrcDomTree" is not available.
) at epcomp.c:1851
#7 0x0000002a992b95fb in ProviderEpRun_GetContentIndex (r=0x8a6a30, pProvider=0x81d690, pData=0x8a6ce8, bUseCache=0 '\0') at epprovider.c:1780
#8 0x0000002a992b7f87 in Cache_GetContentIndex (r=0x8a6a30, pItem=0x81d520, pData=0x8a6ce8, bUseCache=Variable "bUseCache" is not available.
) at epcache.c:1025
#9 0x0000002a99294450 in ProcessFile (r=0x8a6a30, nFileSize=Variable "nFileSize" is not available.
) at epmain.c:1294
#10 0x0000002a99294d1a in embperl_RunRequest (r=0x8a6a30) at epmain.c:1373
#11 0x0000002a9929544e in embperl_ExecuteRequest (my_perl=0x504010, pApacheReqSV=0x504b08, pPerlParam=Variable "pPerlParam" is not available.
) at epmain.c:1476
#12 0x0000002a9928bff3 in XS_Embperl__Req_ExecuteRequest (my_perl=0x504010, cv=Variable "cv" is not available.
) at Embperl.xs:136
#13 0x0000002a9570a91b in Perl_pp_entersub () from /usr/lib64/perl5/5.8.5/x86_64-linux-thread-multi/CORE/libperl.so
#14 0x0000002a956ee86a in Perl_runops_debug () from /usr/lib64/perl5/5.8.5/x86_64-linux-thread-multi/CORE/libperl.so
#15 0x0000002a956a75e4 in perl_run () from /usr/lib64/perl5/5.8.5/x86_64-linux-thread-multi/CORE/libperl.so
#16 0x00000000004019ec in main ()
(gdb) fr 0
#0 0x0000002a992af8f7 in EMBPERL2_Attr_selfValue (a=0x6f8730, pDomTree=0x81a638, pAttr=0x95fda8, nRepeatLevel=0, ppAttr=0x7fbffff0c8) at epdom.c:4330
4330 return Ndx2String (pAttr -> xValue) ;
(gdb) p pAttr
$1 = (struct tAttrData *) 0x95fda8
(gdb) p *pAttr
$2 = {nType = 2 '\002', bFlags = 0 '\0', nNodeOffset = 200, xNdx = 123, xName = 46, xValue = 124}
(gdb) p pAttr->xValue
$3 = 124



--
Best regards,
Andrew mailto:sitnikov@infonet.ee
RE: crash with simple template [ In reply to ]
Hi,

> Subject: crash with simple template
>

Thanks for the test case. The attached patch fixes the problem. It's also fixed in the SVN version

Gerald


> Hello embperl,
>
> OS: CentoS 4.4/x86_64
> Embperl: 2.2.0
> Template: in attache
>
> (gdb) run ./embpexec.pl crash.html.1
> Starting program: /usr/bin/perl ./embpexec.pl crash.html.1
> (no debugging symbols found) (no debugging symbols found) (no
> debugging symbols found) (no debugging symbols found) (no
> debugging symbols found) (no debugging symbols found) (no
> debugging symbols found) (no debugging symbols found) [Thread
> debugging using libthread_db enabled] [New Thread
> 182908350080 (LWP 28855)] (no debugging symbols found) (no
> debugging symbols found) (no debugging symbols found)
>
> Program received signal SIGSEGV, Segmentation fault.
> [Switching to Thread 182908350080 (LWP 28855)]
> 0x0000002a992af8f7 in EMBPERL2_Attr_selfValue (a=0x6f8730,
> pDomTree=0x81a638, pAttr=0x95fda8, nRepeatLevel=0,
> ppAttr=0x7fbffff0c8) at epdom.c:4330
> 4330 return Ndx2String (pAttr -> xValue) ;
> (gdb) bt
> #0 0x0000002a992af8f7 in EMBPERL2_Attr_selfValue
> (a=0x6f8730, pDomTree=0x81a638, pAttr=0x95fda8,
> nRepeatLevel=0, ppAttr=0x7fbffff0c8) at epdom.c:4330
> #1 0x0000002a99290f50 in XS_XML__Embperl__DOM__Attr_iValue
> (my_perl=0x504010, cv=Variable "cv" is not available.
> ) at DOM.xs:408
> #2 0x0000002a9570a91b in Perl_pp_entersub () from
> /usr/lib64/perl5/5.8.5/x86_64-linux-thread-multi/CORE/libperl.so
> #3 0x0000002a956ee86a in Perl_runops_debug () from
> /usr/lib64/perl5/5.8.5/x86_64-linux-thread-multi/CORE/libperl.so
> #4 0x0000002a956a6851 in Perl_call_sv () from
> /usr/lib64/perl5/5.8.5/x86_64-linux-thread-multi/CORE/libperl.so
> #5 0x0000002a9929bc1d in EMBPERL2_CallStoredCV (r=0x8a6a30,
> sArg=Variable "sArg" is not available.
> ) at epeval.c:759
> #6 0x0000002a992b638f in embperl_Execute (r=0x8a6a30,
> xSrcDomTree=Variable "xSrcDomTree" is not available.
> ) at epcomp.c:1851
> #7 0x0000002a992b95fb in ProviderEpRun_GetContentIndex
> (r=0x8a6a30, pProvider=0x81d690, pData=0x8a6ce8, bUseCache=0
> '\0') at epprovider.c:1780
> #8 0x0000002a992b7f87 in Cache_GetContentIndex (r=0x8a6a30,
> pItem=0x81d520, pData=0x8a6ce8, bUseCache=Variable
> "bUseCache" is not available.
> ) at epcache.c:1025
> #9 0x0000002a99294450 in ProcessFile (r=0x8a6a30,
> nFileSize=Variable "nFileSize" is not available.
> ) at epmain.c:1294
> #10 0x0000002a99294d1a in embperl_RunRequest (r=0x8a6a30) at
> epmain.c:1373
> #11 0x0000002a9929544e in embperl_ExecuteRequest
> (my_perl=0x504010, pApacheReqSV=0x504b08, pPerlParam=Variable
> "pPerlParam" is not available.
> ) at epmain.c:1476
> #12 0x0000002a9928bff3 in XS_Embperl__Req_ExecuteRequest
> (my_perl=0x504010, cv=Variable "cv" is not available.
> ) at Embperl.xs:136
> #13 0x0000002a9570a91b in Perl_pp_entersub () from
> /usr/lib64/perl5/5.8.5/x86_64-linux-thread-multi/CORE/libperl.so
> #14 0x0000002a956ee86a in Perl_runops_debug () from
> /usr/lib64/perl5/5.8.5/x86_64-linux-thread-multi/CORE/libperl.so
> #15 0x0000002a956a75e4 in perl_run () from
> /usr/lib64/perl5/5.8.5/x86_64-linux-thread-multi/CORE/libperl.so
> #16 0x00000000004019ec in main ()
> (gdb) fr 0
> #0 0x0000002a992af8f7 in EMBPERL2_Attr_selfValue
> (a=0x6f8730, pDomTree=0x81a638, pAttr=0x95fda8,
> nRepeatLevel=0, ppAttr=0x7fbffff0c8) at epdom.c:4330
> 4330 return Ndx2String (pAttr -> xValue) ;
> (gdb) p pAttr
> $1 = (struct tAttrData *) 0x95fda8
> (gdb) p *pAttr
> $2 = {nType = 2 '\002', bFlags = 0 '\0', nNodeOffset = 200,
> xNdx = 123, xName = 46, xValue = 124}
> (gdb) p pAttr->xValue
> $3 = 124
>
>
>
> --
> Best regards,
> Andrew mailto:sitnikov@infonet.ee
>
>
> ** Virus checked by BB-5000 Mailfilter **
> !DSPAM:45b1ed43117152963317655!
>