[Bug 235666] Segfault occurs when using Perl-Tk on FC6

bugzilla at redhat.com bugzilla at redhat.com
Fri Jan 4 22:05:51 UTC 2008


Please do not reply directly to this email. All additional
comments should be made in the comments box of this bug report.

Summary: Segfault occurs when using Perl-Tk on FC6


https://bugzilla.redhat.com/show_bug.cgi?id=235666





------- Additional Comments From michal at harddata.com  2008-01-04 17:05 EST -------
With perl-Tk-debuginfo loaded I managed to get a core and a backtrace.
It looks like follows for perl-Tk-804.028-1:

Core was generated by `perl testask'.
Program terminated with signal 11, Segmentation fault.
#0  0x00002aaaaeff0ba6 in Tk_GetOptionValue (interp=0xb57b40,
    recordPtr=0xb0f820 " W�", optionTable=<value optimized out>,
    namePtr=<value optimized out>, tkwin=0xb35720) at tkConfig.c:2280
2280        if (optionPtr->specPtr->type == TK_OPTION_SYNONYM) {
(gdb) where
#0  0x00002aaaaeff0ba6 in Tk_GetOptionValue (interp=0xb57b40,
    recordPtr=0xb0f820 " W�", optionTable=<value optimized out>,
    namePtr=<value optimized out>, tkwin=0xb35720) at tkConfig.c:2280
#1  0x00002aaaaefa9f69 in FrameWidgetObjCmd (clientData=0xb0f820,
    interp=0xb57b40, objc=3, objv=0x7c5638) at tkFrame.c:772
#2  0x00002aaaaef8119b in Call_Tk (info=<value optimized out>, items=3,
    args=0x7c5638) at tkGlue.c:2283
#3  0x00002aaaaef826c0 in XStoWidget (my_perl=0x604010,
    cv=<value optimized out>) at tkGlue.c:2664
#4  0x0000003dd6490826 in Perl_pp_entersub ()
   from /usr/lib64/perl5/5.8.8/x86_64-linux-thread-multi/CORE/libperl.so
#5  0x0000003dd648a0ee in Perl_runops_standard ()
   from /usr/lib64/perl5/5.8.8/x86_64-linux-thread-multi/CORE/libperl.so
#6  0x0000003dd6437d9c in perl_run ()
   from /usr/lib64/perl5/5.8.8/x86_64-linux-thread-multi/CORE/libperl.so
#7  0x00000000004017bc in main ()

In frame 0 optionPtr->specPtr comes as (const Tk_OptionSpec *) 0x0
so it is not that surprising that an attempt to derefernce it
segfaults.  The whole *optionPtr looks like this:

{specPtr = 0x0, dbNameUID = 0x31 <Address 0x31 out of bounds>,
  dbClassUID = 0xffffffffffff3fff <Address 0xffffffffffff3fff out of bounds>,
  defaultPtr = 0x3fffffffffff, extra = {monoColorPtr = 0x0, synonymPtr = 0x0,
    custom = 0x0}, flags = 0}

Is this value legitimate or this is a symptom of  a "generic trouble"
in a perl mulithreading support?

Replacing on line 2277 'if (optionPtr == NULL)' with
'if (optionPtr == NULL || optionPtr->specPtr == NULL )' should
prevent that segfault but I have no idea if this just papers over
symptomps and/or has other nasty side-effects.

-- 
Configure bugmail: https://bugzilla.redhat.com/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are on the CC list for the bug, or are watching someone who is.




More information about the Fedora-perl-devel-list mailing list