New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
BBC SREZIC/Tk-804.034.tar.gz #16614
Comments
From @andkProperly tested, perl -V output in the link, a potential BBC candidate: Thanks, |
From @khwilliamsonOn 07/07/2018 12:05 PM, (Andreas J. Koenig) (via RT) wrote:
This is using long-deprecated functions that are security holes, and I edited encGlue.c to get rid of all these and all the warnings, but the The output is attached. The compilation output contains a bunch of I'll submit a PR request on encGlue when I get it working. Any suggestions as to how to get the make test to not die would be |
From @khwilliamsoncd pTk && make DEFINE="" LIBPERL_A="libperl.a" LINKTYPE="dynamic" OPTIMIZE="-O2 -O0 -g" PREFIX="/home/khw/cpanbroken" PASTHRU_DEFINE=' ' PASTHRU_INC=' ' |
The RT System itself - Status changed from 'new' to 'open' |
From @khwilliamsonOn 07/07/2018 10:37 PM, Karl Williamson wrote:
My previous email included the output after all the files had been |
From @khwilliamson |
From @eserteDana Sat, 07 Jul 2018 21:56:37 -0700, public@khwilliamson.com reče:
Which EUMM version are you using? This subdirs-test_dynamic failure looks like the ones described in https://rt.cpan.org/Ticket/Display.html?id=117800 |
From @khwilliamsonOn 07/08/2018 12:53 PM, slaven@rezic.de via RT wrote:
7.34
|
1 similar comment
From @khwilliamsonOn 07/08/2018 12:53 PM, slaven@rezic.de via RT wrote:
7.34
|
From @eserteDana Sun, 08 Jul 2018 22:03:44 -0700, public@khwilliamson.com reče:
Is libjpeg-devel installed? Maybe the problem does only happen if the bundled libjpeg is used. |
From @khwilliamsonOn 07/09/2018 12:28 AM, slaven@rezic.de via RT wrote:
Yes, I had previously installed libjpeg-dev. See my comments in Another option is for me to post a patch on this ticket, and people can
|
From @khwilliamsonOn 07/07/2018 10:37 PM, Karl Williamson wrote:
There is a comment in the code that says /* Doing these in-place seems risky ... */ And in inspecting the code for working with Unicode, I realized the API There are functions to uppercase and lowercase a C string encoded in I don't know how to proceed. The API would have to be redesigned. I |
From @eserteDana Tue, 10 Jul 2018 11:03:07 -0700, public@khwilliamson.com reče:
Maybe you can try it out? In real-world code, the to_utf8_lower warning appears in text boxes when opening the search dialog (right mouse > Find), choose the settings "exact" and "nocase", and do a search. So if you know some unicode which causes lengthening of the utf8 string when turning into lowercase, then it's possible to exceed the buffer. For creating a text box, it's enough to write: perl5.28.0 -MTk -e 'tkinit->Text->pack; MainLoop'
Maybe it's worth to see what the original Tcl code does: It seems that Unfortunately the new to*_utf8_safe functions don't say what's happening in case of exceeding the available space. Maybe it could be done similar as in Encode.pm and the user has some (limited) possibilities to specify the fallback behavior (FB_CROAK + the possibility to set the replacement character). If this possibility exists, then a quick fix would be to just use the replacement character fallback. What's also interesting --- there's no Perl warning if the Tk::Text find functionality is set to regexp+nocase. So maybe a simple fix would be to convert the search string from exact to an equivalent regexp (e.g. using something like '^'.quotemeta($string).'$'). |
From @khwilliamsonOn 07/10/2018 04:14 PM, slaven@rezic.de via RT wrote:
I need a working version to try it out. But if it were just lowercase, the problem would be manageable, as there The problem is the uppercasing. There are quite a few characters that
They currently die, which seems too severe now that you bring it up, but
|
1 similar comment
From @khwilliamsonOn 07/10/2018 04:14 PM, slaven@rezic.de via RT wrote:
I need a working version to try it out. But if it were just lowercase, the problem would be manageable, as there The problem is the uppercasing. There are quite a few characters that
They currently die, which seems too severe now that you bring it up, but
|
From @ppisarOn 2018-07-08, Karl Williamson <public@khwilliamson.com> wrote:
I came across this issue when I applied: commit aa3c16b Make utf8_to_uvchr() safer This function is deprecated because the API doesn't allow it to to perl-5.28.0. Then unpatched Tk crashed for me in Tcl_NumUtfChars() at int when debugigng Tk-Pod-0.9943 test failure like this: $ DISPLAY=:99 perl -Iblib/lib -e 'use Tk::MainWindow; $m=Tk::MainWindow->new; require Tk::Pod::Search; $m->PodSearch' The backtrace was: #0 Tcl_NumUtfChars (src=src@entry=0x55a6feecede0 "Search:", len=25087, len@entry=1853537494) at encGlue.c:117 The "Search:" string 25087 length seems dubious. Maybe it's the same reason why your attempt to port Tk to the new API -- Petr |
From @khwilliamsonOn 09/10/2018 06:00 AM, Petr Pisar wrote:
Could you run this under valgrind? I suspect this would show up a bug |
From @ppisarOn 2018-09-11, Karl Williamson <public@khwilliamson.com> wrote:
valgrind reports plenty of jumps depending on an unitilaized memory in ==PID== Use of uninitialised value of size 8 The encGlue.c:117 is at: int It's the same place found by a debugger. I don't think valgrind provides any Inline Patch--- /tmp/good 2018-09-12 17:47:15.412000000 +0200
+++ /tmp/bad 2018-09-12 17:47:10.412000000 +0200
@@ -14,7 +14,8 @@
==PID== by ADDRESS: main (perlmain.c:122)
==PID==
==PID== Conditional jump or move depends on uninitialised value(s)
-==PID== at ADDRESS: CreateFrame.isra.3 (tkFrame.c:538)
+==PID== at ADDRESS: LangCmpOpt (tkGlue.c:3641)
+==PID== by ADDRESS: CreateFrame.isra.3 (tkFrame.c:531)
==PID== by ADDRESS: XS_Tk__MainWindow_Create (tkGlue.c:2378)
==PID== by ADDRESS: Perl_pp_entersub (in /usr/lib64/libperl.so.5.28.0)
==PID== by ADDRESS: Perl_runops_standard (in /usr/lib64/libperl.so.5.28.0)
@@ -22,7 +23,7 @@
==PID== by ADDRESS: main (perlmain.c:122)
==PID==
==PID== Conditional jump or move depends on uninitialised value(s)
-==PID== at ADDRESS: LangCmpOpt (tkGlue.c:3641)
+==PID== at ADDRESS: LangCmpOpt (tkGlue.c:3648)
==PID== by ADDRESS: CreateFrame.isra.3 (tkFrame.c:531)
==PID== by ADDRESS: XS_Tk__MainWindow_Create (tkGlue.c:2378)
==PID== by ADDRESS: Perl_pp_entersub (in /usr/lib64/libperl.so.5.28.0)
@@ -31,7 +32,7 @@
==PID== by ADDRESS: main (perlmain.c:122)
==PID==
==PID== Conditional jump or move depends on uninitialised value(s)
-==PID== at ADDRESS: LangCmpOpt (tkGlue.c:3648)
+==PID== at ADDRESS: LangCmpOpt (tkGlue.c:3651)
==PID== by ADDRESS: CreateFrame.isra.3 (tkFrame.c:531)
==PID== by ADDRESS: XS_Tk__MainWindow_Create (tkGlue.c:2378)
==PID== by ADDRESS: Perl_pp_entersub (in /usr/lib64/libperl.so.5.28.0)
@@ -40,8 +41,7 @@
==PID== by ADDRESS: main (perlmain.c:122)
==PID==
==PID== Conditional jump or move depends on uninitialised value(s)
-==PID== at ADDRESS: LangCmpOpt (tkGlue.c:3651)
-==PID== by ADDRESS: CreateFrame.isra.3 (tkFrame.c:531)
+==PID== at ADDRESS: CreateFrame.isra.3 (tkFrame.c:532)
==PID== by ADDRESS: XS_Tk__MainWindow_Create (tkGlue.c:2378)
==PID== by ADDRESS: Perl_pp_entersub (in /usr/lib64/libperl.so.5.28.0)
==PID== by ADDRESS: Perl_runops_standard (in /usr/lib64/libperl.so.5.28.0)
@@ -49,7 +49,7 @@
==PID== by ADDRESS: main (perlmain.c:122)
==PID==
==PID== Conditional jump or move depends on uninitialised value(s)
-==PID== at ADDRESS: CreateFrame.isra.3 (tkFrame.c:532)
+==PID== at ADDRESS: CreateFrame.isra.3 (tkFrame.c:538)
==PID== by ADDRESS: XS_Tk__MainWindow_Create (tkGlue.c:2378)
==PID== by ADDRESS: Perl_pp_entersub (in /usr/lib64/libperl.so.5.28.0)
==PID== by ADDRESS: Perl_runops_standard (in /usr/lib64/libperl.so.5.28.0)
@@ -118,16 +118,277 @@
==PID== by ADDRESS: perl_run (in /usr/lib64/libperl.so.5.28.0)
==PID== by ADDRESS: main (perlmain.c:122)
==PID==
+==PID== Conditional jump or move depends on uninitialised value(s)
+==PID== at ADDRESS: Tk_MeasureChars (tkUnixXft.c:560)
+==PID== by ADDRESS: Tk_AllocFontFromObj (tkFont.c:1158)
+==PID== by ADDRESS: DoObjConfig (tkConfig.c:799)
+==PID== by ADDRESS: Tk_InitOptions (tkConfig.c:569)
+==PID== by ADDRESS: Tk_ListboxObjCmd (tkListbox.c:571)
+==PID== by ADDRESS: Call_Tk (tkGlue.c:2260)
+==PID== by ADDRESS: XSTkCommand (tkGlue.c:3025)
+==PID== by ADDRESS: XS_Tk_listbox (Listbox.xs:30)
+==PID== by ADDRESS: Perl_pp_entersub (in /usr/lib64/libperl.so.5.28.0)
+==PID== by ADDRESS: Perl_runops_standard (in /usr/lib64/libperl.so.5.28.0)
+==PID== by ADDRESS: perl_run (in /usr/lib64/libperl.so.5.28.0)
+==PID== by ADDRESS: main (perlmain.c:122)
+==PID==
+==PID== Conditional jump or move depends on uninitialised value(s)
+==PID== at ADDRESS: Tk_MeasureChars (tkUnixXft.c:560)
+==PID== by ADDRESS: Tk_TextWidth (tkFont.c:1774)
+==PID== by ADDRESS: ListboxComputeGeometry (tkListbox.c:2176)
+==PID== by ADDRESS: ListboxWorldChanged (tkListbox.c:1798)
+==PID== by ADDRESS: ConfigureListbox.isra.2 (tkListbox.c:1672)
+==PID== by ADDRESS: Tk_ListboxObjCmd (tkListbox.c:577)
+==PID== by ADDRESS: Call_Tk (tkGlue.c:2260)
+==PID== by ADDRESS: XSTkCommand (tkGlue.c:3025)
+==PID== by ADDRESS: XS_Tk_listbox (Listbox.xs:30)
+==PID== by ADDRESS: Perl_pp_entersub (in /usr/lib64/libperl.so.5.28.0)
+==PID== by ADDRESS: Perl_runops_standard (in /usr/lib64/libperl.so.5.28.0)
+==PID== by ADDRESS: perl_run (in /usr/lib64/libperl.so.5.28.0)
+==PID==
+==PID== Conditional jump or move depends on uninitialised value(s)
+==PID== at ADDRESS: Tk_MeasureChars (tkUnixXft.c:554)
+==PID== by ADDRESS: Tk_TextWidth (tkFont.c:1774)
+==PID== by ADDRESS: ListboxComputeGeometry (tkListbox.c:2176)
+==PID== by ADDRESS: ListboxWorldChanged (tkListbox.c:1798)
+==PID== by ADDRESS: ConfigureListbox.isra.2 (tkListbox.c:1672)
+==PID== by ADDRESS: Tk_ListboxObjCmd (tkListbox.c:577)
+==PID== by ADDRESS: Call_Tk (tkGlue.c:2260)
+==PID== by ADDRESS: XSTkCommand (tkGlue.c:3025)
+==PID== by ADDRESS: XS_Tk_listbox (Listbox.xs:30)
+==PID== by ADDRESS: Perl_pp_entersub (in /usr/lib64/libperl.so.5.28.0)
+==PID== by ADDRESS: Perl_runops_standard (in /usr/lib64/libperl.so.5.28.0)
+==PID== by ADDRESS: perl_run (in /usr/lib64/libperl.so.5.28.0)
+==PID==
+==PID== Conditional jump or move depends on uninitialised value(s)
+==PID== at ADDRESS: Tk_MeasureChars (tkUnixXft.c:560)
+==PID== by ADDRESS: Tk_TextWidth (tkFont.c:1774)
+==PID== by ADDRESS: TkpComputeButtonGeometry (tkUnixButton.c:608)
+==PID== by ADDRESS: TkButtonWorldChanged (tkButton.c:1392)
+==PID== by ADDRESS: ConfigureButton (tkButton.c:1279)
+==PID== by ADDRESS: ButtonCreate.isra.5 (tkButton.c:744)
+==PID== by ADDRESS: Call_Tk (tkGlue.c:2260)
+==PID== by ADDRESS: XSTkCommand (tkGlue.c:3025)
+==PID== by ADDRESS: XStoTclCmdNull (tkGlue.c:3039)
+==PID== by ADDRESS: Perl_pp_entersub (in /usr/lib64/libperl.so.5.28.0)
+==PID== by ADDRESS: Perl_runops_standard (in /usr/lib64/libperl.so.5.28.0)
+==PID== by ADDRESS: perl_run (in /usr/lib64/libperl.so.5.28.0)
+==PID==
+==PID== Conditional jump or move depends on uninitialised value(s)
+==PID== at ADDRESS: Tk_MeasureChars (tkUnixXft.c:560)
+==PID== by ADDRESS: Tk_AllocFontFromObj (tkFont.c:1158)
+==PID== by ADDRESS: DoObjConfig (tkConfig.c:799)
+==PID== by ADDRESS: Tk_SetOptions (tkConfig.c:1445)
+==PID== by ADDRESS: ConfigureListbox.isra.2 (tkListbox.c:1570)
+==PID== by ADDRESS: ListboxWidgetObjCmd (tkListbox.c:709)
+==PID== by ADDRESS: Call_Tk (tkGlue.c:2260)
+==PID== by ADDRESS: XStoWidget (tkGlue.c:2627)
+==PID== by ADDRESS: Perl_pp_entersub (in /usr/lib64/libperl.so.5.28.0)
+==PID== by ADDRESS: Perl_runops_standard (in /usr/lib64/libperl.so.5.28.0)
+==PID== by ADDRESS: perl_run (in /usr/lib64/libperl.so.5.28.0)
+==PID== by ADDRESS: main (perlmain.c:122)
+==PID==
+==PID== Conditional jump or move depends on uninitialised value(s)
+==PID== at ADDRESS: Tk_MeasureChars (tkUnixXft.c:560)
+==PID== by ADDRESS: Tk_TextWidth (tkFont.c:1774)
+==PID== by ADDRESS: EntryWorldChanged (tkEntry.c:1707)
+==PID== by ADDRESS: ConfigureEntry.isra.5 (tkEntry.c:1668)
+==PID== by ADDRESS: Tk_EntryObjCmd (tkEntry.c:853)
+==PID== by ADDRESS: Call_Tk (tkGlue.c:2260)
+==PID== by ADDRESS: XSTkCommand (tkGlue.c:3025)
+==PID== by ADDRESS: XS_Tk_entry (Entry.xs:27)
+==PID== by ADDRESS: Perl_pp_entersub (in /usr/lib64/libperl.so.5.28.0)
+==PID== by ADDRESS: Perl_runops_standard (in /usr/lib64/libperl.so.5.28.0)
+==PID== by ADDRESS: perl_run (in /usr/lib64/libperl.so.5.28.0)
+==PID== by ADDRESS: main (perlmain.c:122)
+==PID==
+==PID== Conditional jump or move depends on uninitialised value(s)
+==PID== at ADDRESS: Tk_MeasureChars (tkUnixXft.c:554)
+==PID== by ADDRESS: Tk_TextWidth (tkFont.c:1774)
+==PID== by ADDRESS: EntryWorldChanged (tkEntry.c:1707)
+==PID== by ADDRESS: ConfigureEntry.isra.5 (tkEntry.c:1668)
+==PID== by ADDRESS: Tk_EntryObjCmd (tkEntry.c:853)
+==PID== by ADDRESS: Call_Tk (tkGlue.c:2260)
+==PID== by ADDRESS: XSTkCommand (tkGlue.c:3025)
+==PID== by ADDRESS: XS_Tk_entry (Entry.xs:27)
+==PID== by ADDRESS: Perl_pp_entersub (in /usr/lib64/libperl.so.5.28.0)
+==PID== by ADDRESS: Perl_runops_standard (in /usr/lib64/libperl.so.5.28.0)
+==PID== by ADDRESS: perl_run (in /usr/lib64/libperl.so.5.28.0)
+==PID== by ADDRESS: main (perlmain.c:122)
+==PID==
+==PID== Conditional jump or move depends on uninitialised value(s)
+==PID== at ADDRESS: Tk_MeasureChars (tkUnixXft.c:560)
+==PID== by ADDRESS: Tk_ComputeTextLayout (tkFont.c:1972)
+==PID== by ADDRESS: TkpComputeButtonGeometry (tkUnixButton.c:602)
+==PID== by ADDRESS: TkButtonWorldChanged (tkButton.c:1392)
+==PID== by ADDRESS: ConfigureButton (tkButton.c:1279)
+==PID== by ADDRESS: ButtonWidgetObjCmd (tkButton.c:823)
+==PID== by ADDRESS: Call_Tk (tkGlue.c:2260)
+==PID== by ADDRESS: XStoWidget (tkGlue.c:2627)
+==PID== by ADDRESS: Perl_pp_entersub (in /usr/lib64/libperl.so.5.28.0)
+==PID== by ADDRESS: Perl_runops_standard (in /usr/lib64/libperl.so.5.28.0)
+==PID== by ADDRESS: perl_run (in /usr/lib64/libperl.so.5.28.0)
+==PID== by ADDRESS: main (perlmain.c:122)
+==PID==
+==PID== Conditional jump or move depends on uninitialised value(s)
+==PID== at ADDRESS: Tk_MeasureChars (tkUnixXft.c:554)
+==PID== by ADDRESS: Tk_ComputeTextLayout (tkFont.c:1972)
+==PID== by ADDRESS: TkpComputeButtonGeometry (tkUnixButton.c:602)
+==PID== by ADDRESS: TkButtonWorldChanged (tkButton.c:1392)
+==PID== by ADDRESS: ConfigureButton (tkButton.c:1279)
+==PID== by ADDRESS: ButtonWidgetObjCmd (tkButton.c:823)
+==PID== by ADDRESS: Call_Tk (tkGlue.c:2260)
+==PID== by ADDRESS: XStoWidget (tkGlue.c:2627)
+==PID== by ADDRESS: Perl_pp_entersub (in /usr/lib64/libperl.so.5.28.0)
+==PID== by ADDRESS: Perl_runops_standard (in /usr/lib64/libperl.so.5.28.0)
+==PID== by ADDRESS: perl_run (in /usr/lib64/libperl.so.5.28.0)
+==PID== by ADDRESS: main (perlmain.c:122)
+==PID==
+==PID== Conditional jump or move depends on uninitialised value(s)
+==PID== at ADDRESS: Tk_ComputeTextLayout (tkFont.c:1976)
+==PID== by ADDRESS: TkpComputeButtonGeometry (tkUnixButton.c:602)
+==PID== by ADDRESS: TkButtonWorldChanged (tkButton.c:1392)
+==PID== by ADDRESS: ConfigureButton (tkButton.c:1279)
+==PID== by ADDRESS: ButtonWidgetObjCmd (tkButton.c:823)
+==PID== by ADDRESS: Call_Tk (tkGlue.c:2260)
+==PID== by ADDRESS: XStoWidget (tkGlue.c:2627)
+==PID== by ADDRESS: Perl_pp_entersub (in /usr/lib64/libperl.so.5.28.0)
+==PID== by ADDRESS: Perl_runops_standard (in /usr/lib64/libperl.so.5.28.0)
+==PID== by ADDRESS: perl_run (in /usr/lib64/libperl.so.5.28.0)
+==PID== by ADDRESS: main (perlmain.c:122)
+==PID==
+==PID== Conditional jump or move depends on uninitialised value(s)
+==PID== at ADDRESS: Tcl_NumUtfChars (encGlue.c:111)
+==PID== by ADDRESS: NewChunk (tkFont.c:3298)
+==PID== by ADDRESS: Tk_ComputeTextLayout (tkFont.c:1977)
+==PID== by ADDRESS: TkpComputeButtonGeometry (tkUnixButton.c:602)
+==PID== by ADDRESS: TkButtonWorldChanged (tkButton.c:1392)
+==PID== by ADDRESS: ConfigureButton (tkButton.c:1279)
+==PID== by ADDRESS: ButtonWidgetObjCmd (tkButton.c:823)
+==PID== by ADDRESS: Call_Tk (tkGlue.c:2260)
+==PID== by ADDRESS: XStoWidget (tkGlue.c:2627)
+==PID== by ADDRESS: Perl_pp_entersub (in /usr/lib64/libperl.so.5.28.0)
+==PID== by ADDRESS: Perl_runops_standard (in /usr/lib64/libperl.so.5.28.0)
+==PID== by ADDRESS: perl_run (in /usr/lib64/libperl.so.5.28.0)
+==PID==
+==PID== Conditional jump or move depends on uninitialised value(s)
+==PID== at ADDRESS: Tcl_NumUtfChars (encGlue.c:115)
+==PID== by ADDRESS: NewChunk (tkFont.c:3298)
+==PID== by ADDRESS: Tk_ComputeTextLayout (tkFont.c:1977)
+==PID== by ADDRESS: TkpComputeButtonGeometry (tkUnixButton.c:602)
+==PID== by ADDRESS: TkButtonWorldChanged (tkButton.c:1392)
+==PID== by ADDRESS: ConfigureButton (tkButton.c:1279)
+==PID== by ADDRESS: ButtonWidgetObjCmd (tkButton.c:823)
+==PID== by ADDRESS: Call_Tk (tkGlue.c:2260)
+==PID== by ADDRESS: XStoWidget (tkGlue.c:2627)
+==PID== by ADDRESS: Perl_pp_entersub (in /usr/lib64/libperl.so.5.28.0)
+==PID== by ADDRESS: Perl_runops_standard (in /usr/lib64/libperl.so.5.28.0)
+==PID== by ADDRESS: perl_run (in /usr/lib64/libperl.so.5.28.0)
+==PID==
+==PID== Conditional jump or move depends on uninitialised value(s)
+==PID== at ADDRESS: Tcl_NumUtfChars (encGlue.c:115)
+==PID== by ADDRESS: NewChunk (tkFont.c:3298)
+==PID== by ADDRESS: Tk_ComputeTextLayout (tkFont.c:1977)
+==PID== by ADDRESS: TkpComputeButtonGeometry (tkUnixButton.c:602)
+==PID== by ADDRESS: TkButtonWorldChanged (tkButton.c:1392)
+==PID== by ADDRESS: ConfigureButton (tkButton.c:1279)
+==PID== by ADDRESS: ButtonWidgetObjCmd (tkButton.c:823)
+==PID== by ADDRESS: Call_Tk (tkGlue.c:2260)
+==PID== by ADDRESS: XStoWidget (tkGlue.c:2627)
+==PID== by ADDRESS: Perl_pp_entersub (in /usr/lib64/libperl.so.5.28.0)
+==PID== by ADDRESS: Perl_runops_standard (in /usr/lib64/libperl.so.5.28.0)
+==PID== by ADDRESS: perl_run (in /usr/lib64/libperl.so.5.28.0)
+==PID==
+==PID== Use of uninitialised value of size 8
+==PID== at ADDRESS: Tcl_NumUtfChars (encGlue.c:117)
+==PID== by ADDRESS: NewChunk (tkFont.c:3298)
+==PID== by ADDRESS: Tk_ComputeTextLayout (tkFont.c:1977)
+==PID== by ADDRESS: TkpComputeButtonGeometry (tkUnixButton.c:602)
+==PID== by ADDRESS: TkButtonWorldChanged (tkButton.c:1392)
+==PID== by ADDRESS: ConfigureButton (tkButton.c:1279)
+==PID== by ADDRESS: ButtonWidgetObjCmd (tkButton.c:823)
+==PID== by ADDRESS: Call_Tk (tkGlue.c:2260)
+==PID== by ADDRESS: XStoWidget (tkGlue.c:2627)
+==PID== by ADDRESS: Perl_pp_entersub (in /usr/lib64/libperl.so.5.28.0)
+==PID== by ADDRESS: Perl_runops_standard (in /usr/lib64/libperl.so.5.28.0)
+==PID== by ADDRESS: perl_run (in /usr/lib64/libperl.so.5.28.0)
+==PID==
+==PID== Conditional jump or move depends on uninitialised value(s)
+==PID== at ADDRESS: Tk_ComputeTextLayout (tkFont.c:1985)
+==PID== by ADDRESS: TkpComputeButtonGeometry (tkUnixButton.c:602)
+==PID== by ADDRESS: TkButtonWorldChanged (tkButton.c:1392)
+==PID== by ADDRESS: ConfigureButton (tkButton.c:1279)
+==PID== by ADDRESS: ButtonWidgetObjCmd (tkButton.c:823)
+==PID== by ADDRESS: Call_Tk (tkGlue.c:2260)
+==PID== by ADDRESS: XStoWidget (tkGlue.c:2627)
+==PID== by ADDRESS: Perl_pp_entersub (in /usr/lib64/libperl.so.5.28.0)
+==PID== by ADDRESS: Perl_runops_standard (in /usr/lib64/libperl.so.5.28.0)
+==PID== by ADDRESS: perl_run (in /usr/lib64/libperl.so.5.28.0)
+==PID== by ADDRESS: main (perlmain.c:122)
+==PID==
+==PID== Conditional jump or move depends on uninitialised value(s)
+==PID== at ADDRESS: Tk_ComputeTextLayout (tkFont.c:2024)
+==PID== by ADDRESS: TkpComputeButtonGeometry (tkUnixButton.c:602)
+==PID== by ADDRESS: TkButtonWorldChanged (tkButton.c:1392)
+==PID== by ADDRESS: ConfigureButton (tkButton.c:1279)
+==PID== by ADDRESS: ButtonWidgetObjCmd (tkButton.c:823)
+==PID== by ADDRESS: Call_Tk (tkGlue.c:2260)
+==PID== by ADDRESS: XStoWidget (tkGlue.c:2627)
+==PID== by ADDRESS: Perl_pp_entersub (in /usr/lib64/libperl.so.5.28.0)
+==PID== by ADDRESS: Perl_runops_standard (in /usr/lib64/libperl.so.5.28.0)
+==PID== by ADDRESS: perl_run (in /usr/lib64/libperl.so.5.28.0)
+==PID== by ADDRESS: main (perlmain.c:122)
+==PID==
+==PID== Conditional jump or move depends on uninitialised value(s)
+==PID== at ADDRESS: Tk_ComputeTextLayout (tkFont.c:2048)
+==PID== by ADDRESS: TkpComputeButtonGeometry (tkUnixButton.c:602)
+==PID== by ADDRESS: TkButtonWorldChanged (tkButton.c:1392)
+==PID== by ADDRESS: ConfigureButton (tkButton.c:1279)
+==PID== by ADDRESS: ButtonWidgetObjCmd (tkButton.c:823)
+==PID== by ADDRESS: Call_Tk (tkGlue.c:2260)
+==PID== by ADDRESS: XStoWidget (tkGlue.c:2627)
+==PID== by ADDRESS: Perl_pp_entersub (in /usr/lib64/libperl.so.5.28.0)
+==PID== by ADDRESS: Perl_runops_standard (in /usr/lib64/libperl.so.5.28.0)
+==PID== by ADDRESS: perl_run (in /usr/lib64/libperl.so.5.28.0)
+==PID== by ADDRESS: main (perlmain.c:122)
+==PID==
+==PID== Conditional jump or move depends on uninitialised value(s)
+==PID== at ADDRESS: Tk_ComputeTextLayout (tkFont.c:1940)
+==PID== by ADDRESS: TkpComputeButtonGeometry (tkUnixButton.c:602)
+==PID== by ADDRESS: TkButtonWorldChanged (tkButton.c:1392)
+==PID== by ADDRESS: ConfigureButton (tkButton.c:1279)
+==PID== by ADDRESS: ButtonWidgetObjCmd (tkButton.c:823)
+==PID== by ADDRESS: Call_Tk (tkGlue.c:2260)
+==PID== by ADDRESS: XStoWidget (tkGlue.c:2627)
+==PID== by ADDRESS: Perl_pp_entersub (in /usr/lib64/libperl.so.5.28.0)
+==PID== by ADDRESS: Perl_runops_standard (in /usr/lib64/libperl.so.5.28.0)
+==PID== by ADDRESS: perl_run (in /usr/lib64/libperl.so.5.28.0)
+==PID== by ADDRESS: main (perlmain.c:122)
+==PID==
+==PID== Conditional jump or move depends on uninitialised value(s)
+==PID== at ADDRESS: Tk_MeasureChars (tkUnixXft.c:554)
+==PID== by ADDRESS: Tk_TextWidth (tkFont.c:1774)
+==PID== by ADDRESS: TkpComputeButtonGeometry (tkUnixButton.c:608)
+==PID== by ADDRESS: TkButtonWorldChanged (tkButton.c:1392)
+==PID== by ADDRESS: ConfigureButton (tkButton.c:1279)
+==PID== by ADDRESS: ButtonWidgetObjCmd (tkButton.c:823)
+==PID== by ADDRESS: Call_Tk (tkGlue.c:2260)
+==PID== by ADDRESS: XStoWidget (tkGlue.c:2627)
+==PID== by ADDRESS: Perl_pp_entersub (in /usr/lib64/libperl.so.5.28.0)
+==PID== by ADDRESS: Perl_runops_standard (in /usr/lib64/libperl.so.5.28.0)
+==PID== by ADDRESS: perl_run (in /usr/lib64/libperl.so.5.28.0)
+==PID== by ADDRESS: main (perlmain.c:122)
+==PID==
==PID==
==PID== HEAP SUMMARY:
-==PID== in use at exit: 7,460,071 bytes in 33,139 blocks
-==PID== total heap usage: 99,626 allocs, 66,487 frees, 17,400,121 bytes allocated
+==PID== in use at exit: 7,460,004 bytes in 33,142 blocks
+==PID== total heap usage: 99,583 allocs, 66,441 frees, 17,389,542 bytes allocated
==PID==
==PID== LEAK SUMMARY:
==PID== definitely lost: 23,450 bytes in 41 blocks
==PID== indirectly lost: 69,152 bytes in 33 blocks
-==PID== possibly lost: 7,166,005 bytes in 28,373 blocks
-==PID== still reachable: 201,464 bytes in 4,692 blocks
+==PID== possibly lost: 7,165,906 bytes in 28,376 blocks
+==PID== still reachable: 201,496 bytes in 4,692 blocks
==PID== of which reachable via heuristic:
==PID== newarray : 24,968 bytes in 764 blocks
==PID== suppressed: 0 bytes in 0 blocks
@@ -135,4 +396,4 @@
==PID==
==PID== For counts of detected and suppressed errors, rerun with: -v
==PID== Use --track-origins=yes to see where uninitialised values come from
-==PID== ERROR SUMMARY: 175 errors from 12 contexts (suppressed: 0 from 0)
+==PID== ERROR SUMMARY: 255 errors from 31 contexts (suppressed: 0 from 0)
-- Petr |
From @jkeenanOn Wed, 12 Sep 2018 16:03:42 GMT, ppisar wrote:
[snip -- moved to attachment]
Could we get an update on the status of this ticket? khw has mentioned to me: "These probably indicate potential security flaws, which the maintainer(s) really should investigate. These are scary, and this code may already be being used as an attack vector." Speaking of scary ... the other day I attempted to build Tk against perl-5.29.4. My computer crashed during the test suite. Twice. Thank you very much. -- |
From @jkeenan133347-tk-valgrind.diff--- /tmp/good 2018-09-12 17:47:15.412000000 +0200
+++ /tmp/bad 2018-09-12 17:47:10.412000000 +0200
@@ -14,7 +14,8 @@
==PID== by ADDRESS: main (perlmain.c:122)
==PID==
==PID== Conditional jump or move depends on uninitialised value(s)
-==PID== at ADDRESS: CreateFrame.isra.3 (tkFrame.c:538)
+==PID== at ADDRESS: LangCmpOpt (tkGlue.c:3641)
+==PID== by ADDRESS: CreateFrame.isra.3 (tkFrame.c:531)
==PID== by ADDRESS: XS_Tk__MainWindow_Create (tkGlue.c:2378)
==PID== by ADDRESS: Perl_pp_entersub (in /usr/lib64/libperl.so.5.28.0)
==PID== by ADDRESS: Perl_runops_standard (in /usr/lib64/libperl.so.5.28.0)
@@ -22,7 +23,7 @@
==PID== by ADDRESS: main (perlmain.c:122)
==PID==
==PID== Conditional jump or move depends on uninitialised value(s)
-==PID== at ADDRESS: LangCmpOpt (tkGlue.c:3641)
+==PID== at ADDRESS: LangCmpOpt (tkGlue.c:3648)
==PID== by ADDRESS: CreateFrame.isra.3 (tkFrame.c:531)
==PID== by ADDRESS: XS_Tk__MainWindow_Create (tkGlue.c:2378)
==PID== by ADDRESS: Perl_pp_entersub (in /usr/lib64/libperl.so.5.28.0)
@@ -31,7 +32,7 @@
==PID== by ADDRESS: main (perlmain.c:122)
==PID==
==PID== Conditional jump or move depends on uninitialised value(s)
-==PID== at ADDRESS: LangCmpOpt (tkGlue.c:3648)
+==PID== at ADDRESS: LangCmpOpt (tkGlue.c:3651)
==PID== by ADDRESS: CreateFrame.isra.3 (tkFrame.c:531)
==PID== by ADDRESS: XS_Tk__MainWindow_Create (tkGlue.c:2378)
==PID== by ADDRESS: Perl_pp_entersub (in /usr/lib64/libperl.so.5.28.0)
@@ -40,8 +41,7 @@
==PID== by ADDRESS: main (perlmain.c:122)
==PID==
==PID== Conditional jump or move depends on uninitialised value(s)
-==PID== at ADDRESS: LangCmpOpt (tkGlue.c:3651)
-==PID== by ADDRESS: CreateFrame.isra.3 (tkFrame.c:531)
+==PID== at ADDRESS: CreateFrame.isra.3 (tkFrame.c:532)
==PID== by ADDRESS: XS_Tk__MainWindow_Create (tkGlue.c:2378)
==PID== by ADDRESS: Perl_pp_entersub (in /usr/lib64/libperl.so.5.28.0)
==PID== by ADDRESS: Perl_runops_standard (in /usr/lib64/libperl.so.5.28.0)
@@ -49,7 +49,7 @@
==PID== by ADDRESS: main (perlmain.c:122)
==PID==
==PID== Conditional jump or move depends on uninitialised value(s)
-==PID== at ADDRESS: CreateFrame.isra.3 (tkFrame.c:532)
+==PID== at ADDRESS: CreateFrame.isra.3 (tkFrame.c:538)
==PID== by ADDRESS: XS_Tk__MainWindow_Create (tkGlue.c:2378)
==PID== by ADDRESS: Perl_pp_entersub (in /usr/lib64/libperl.so.5.28.0)
==PID== by ADDRESS: Perl_runops_standard (in /usr/lib64/libperl.so.5.28.0)
@@ -118,16 +118,277 @@
==PID== by ADDRESS: perl_run (in /usr/lib64/libperl.so.5.28.0)
==PID== by ADDRESS: main (perlmain.c:122)
==PID==
+==PID== Conditional jump or move depends on uninitialised value(s)
+==PID== at ADDRESS: Tk_MeasureChars (tkUnixXft.c:560)
+==PID== by ADDRESS: Tk_AllocFontFromObj (tkFont.c:1158)
+==PID== by ADDRESS: DoObjConfig (tkConfig.c:799)
+==PID== by ADDRESS: Tk_InitOptions (tkConfig.c:569)
+==PID== by ADDRESS: Tk_ListboxObjCmd (tkListbox.c:571)
+==PID== by ADDRESS: Call_Tk (tkGlue.c:2260)
+==PID== by ADDRESS: XSTkCommand (tkGlue.c:3025)
+==PID== by ADDRESS: XS_Tk_listbox (Listbox.xs:30)
+==PID== by ADDRESS: Perl_pp_entersub (in /usr/lib64/libperl.so.5.28.0)
+==PID== by ADDRESS: Perl_runops_standard (in /usr/lib64/libperl.so.5.28.0)
+==PID== by ADDRESS: perl_run (in /usr/lib64/libperl.so.5.28.0)
+==PID== by ADDRESS: main (perlmain.c:122)
+==PID==
+==PID== Conditional jump or move depends on uninitialised value(s)
+==PID== at ADDRESS: Tk_MeasureChars (tkUnixXft.c:560)
+==PID== by ADDRESS: Tk_TextWidth (tkFont.c:1774)
+==PID== by ADDRESS: ListboxComputeGeometry (tkListbox.c:2176)
+==PID== by ADDRESS: ListboxWorldChanged (tkListbox.c:1798)
+==PID== by ADDRESS: ConfigureListbox.isra.2 (tkListbox.c:1672)
+==PID== by ADDRESS: Tk_ListboxObjCmd (tkListbox.c:577)
+==PID== by ADDRESS: Call_Tk (tkGlue.c:2260)
+==PID== by ADDRESS: XSTkCommand (tkGlue.c:3025)
+==PID== by ADDRESS: XS_Tk_listbox (Listbox.xs:30)
+==PID== by ADDRESS: Perl_pp_entersub (in /usr/lib64/libperl.so.5.28.0)
+==PID== by ADDRESS: Perl_runops_standard (in /usr/lib64/libperl.so.5.28.0)
+==PID== by ADDRESS: perl_run (in /usr/lib64/libperl.so.5.28.0)
+==PID==
+==PID== Conditional jump or move depends on uninitialised value(s)
+==PID== at ADDRESS: Tk_MeasureChars (tkUnixXft.c:554)
+==PID== by ADDRESS: Tk_TextWidth (tkFont.c:1774)
+==PID== by ADDRESS: ListboxComputeGeometry (tkListbox.c:2176)
+==PID== by ADDRESS: ListboxWorldChanged (tkListbox.c:1798)
+==PID== by ADDRESS: ConfigureListbox.isra.2 (tkListbox.c:1672)
+==PID== by ADDRESS: Tk_ListboxObjCmd (tkListbox.c:577)
+==PID== by ADDRESS: Call_Tk (tkGlue.c:2260)
+==PID== by ADDRESS: XSTkCommand (tkGlue.c:3025)
+==PID== by ADDRESS: XS_Tk_listbox (Listbox.xs:30)
+==PID== by ADDRESS: Perl_pp_entersub (in /usr/lib64/libperl.so.5.28.0)
+==PID== by ADDRESS: Perl_runops_standard (in /usr/lib64/libperl.so.5.28.0)
+==PID== by ADDRESS: perl_run (in /usr/lib64/libperl.so.5.28.0)
+==PID==
+==PID== Conditional jump or move depends on uninitialised value(s)
+==PID== at ADDRESS: Tk_MeasureChars (tkUnixXft.c:560)
+==PID== by ADDRESS: Tk_TextWidth (tkFont.c:1774)
+==PID== by ADDRESS: TkpComputeButtonGeometry (tkUnixButton.c:608)
+==PID== by ADDRESS: TkButtonWorldChanged (tkButton.c:1392)
+==PID== by ADDRESS: ConfigureButton (tkButton.c:1279)
+==PID== by ADDRESS: ButtonCreate.isra.5 (tkButton.c:744)
+==PID== by ADDRESS: Call_Tk (tkGlue.c:2260)
+==PID== by ADDRESS: XSTkCommand (tkGlue.c:3025)
+==PID== by ADDRESS: XStoTclCmdNull (tkGlue.c:3039)
+==PID== by ADDRESS: Perl_pp_entersub (in /usr/lib64/libperl.so.5.28.0)
+==PID== by ADDRESS: Perl_runops_standard (in /usr/lib64/libperl.so.5.28.0)
+==PID== by ADDRESS: perl_run (in /usr/lib64/libperl.so.5.28.0)
+==PID==
+==PID== Conditional jump or move depends on uninitialised value(s)
+==PID== at ADDRESS: Tk_MeasureChars (tkUnixXft.c:560)
+==PID== by ADDRESS: Tk_AllocFontFromObj (tkFont.c:1158)
+==PID== by ADDRESS: DoObjConfig (tkConfig.c:799)
+==PID== by ADDRESS: Tk_SetOptions (tkConfig.c:1445)
+==PID== by ADDRESS: ConfigureListbox.isra.2 (tkListbox.c:1570)
+==PID== by ADDRESS: ListboxWidgetObjCmd (tkListbox.c:709)
+==PID== by ADDRESS: Call_Tk (tkGlue.c:2260)
+==PID== by ADDRESS: XStoWidget (tkGlue.c:2627)
+==PID== by ADDRESS: Perl_pp_entersub (in /usr/lib64/libperl.so.5.28.0)
+==PID== by ADDRESS: Perl_runops_standard (in /usr/lib64/libperl.so.5.28.0)
+==PID== by ADDRESS: perl_run (in /usr/lib64/libperl.so.5.28.0)
+==PID== by ADDRESS: main (perlmain.c:122)
+==PID==
+==PID== Conditional jump or move depends on uninitialised value(s)
+==PID== at ADDRESS: Tk_MeasureChars (tkUnixXft.c:560)
+==PID== by ADDRESS: Tk_TextWidth (tkFont.c:1774)
+==PID== by ADDRESS: EntryWorldChanged (tkEntry.c:1707)
+==PID== by ADDRESS: ConfigureEntry.isra.5 (tkEntry.c:1668)
+==PID== by ADDRESS: Tk_EntryObjCmd (tkEntry.c:853)
+==PID== by ADDRESS: Call_Tk (tkGlue.c:2260)
+==PID== by ADDRESS: XSTkCommand (tkGlue.c:3025)
+==PID== by ADDRESS: XS_Tk_entry (Entry.xs:27)
+==PID== by ADDRESS: Perl_pp_entersub (in /usr/lib64/libperl.so.5.28.0)
+==PID== by ADDRESS: Perl_runops_standard (in /usr/lib64/libperl.so.5.28.0)
+==PID== by ADDRESS: perl_run (in /usr/lib64/libperl.so.5.28.0)
+==PID== by ADDRESS: main (perlmain.c:122)
+==PID==
+==PID== Conditional jump or move depends on uninitialised value(s)
+==PID== at ADDRESS: Tk_MeasureChars (tkUnixXft.c:554)
+==PID== by ADDRESS: Tk_TextWidth (tkFont.c:1774)
+==PID== by ADDRESS: EntryWorldChanged (tkEntry.c:1707)
+==PID== by ADDRESS: ConfigureEntry.isra.5 (tkEntry.c:1668)
+==PID== by ADDRESS: Tk_EntryObjCmd (tkEntry.c:853)
+==PID== by ADDRESS: Call_Tk (tkGlue.c:2260)
+==PID== by ADDRESS: XSTkCommand (tkGlue.c:3025)
+==PID== by ADDRESS: XS_Tk_entry (Entry.xs:27)
+==PID== by ADDRESS: Perl_pp_entersub (in /usr/lib64/libperl.so.5.28.0)
+==PID== by ADDRESS: Perl_runops_standard (in /usr/lib64/libperl.so.5.28.0)
+==PID== by ADDRESS: perl_run (in /usr/lib64/libperl.so.5.28.0)
+==PID== by ADDRESS: main (perlmain.c:122)
+==PID==
+==PID== Conditional jump or move depends on uninitialised value(s)
+==PID== at ADDRESS: Tk_MeasureChars (tkUnixXft.c:560)
+==PID== by ADDRESS: Tk_ComputeTextLayout (tkFont.c:1972)
+==PID== by ADDRESS: TkpComputeButtonGeometry (tkUnixButton.c:602)
+==PID== by ADDRESS: TkButtonWorldChanged (tkButton.c:1392)
+==PID== by ADDRESS: ConfigureButton (tkButton.c:1279)
+==PID== by ADDRESS: ButtonWidgetObjCmd (tkButton.c:823)
+==PID== by ADDRESS: Call_Tk (tkGlue.c:2260)
+==PID== by ADDRESS: XStoWidget (tkGlue.c:2627)
+==PID== by ADDRESS: Perl_pp_entersub (in /usr/lib64/libperl.so.5.28.0)
+==PID== by ADDRESS: Perl_runops_standard (in /usr/lib64/libperl.so.5.28.0)
+==PID== by ADDRESS: perl_run (in /usr/lib64/libperl.so.5.28.0)
+==PID== by ADDRESS: main (perlmain.c:122)
+==PID==
+==PID== Conditional jump or move depends on uninitialised value(s)
+==PID== at ADDRESS: Tk_MeasureChars (tkUnixXft.c:554)
+==PID== by ADDRESS: Tk_ComputeTextLayout (tkFont.c:1972)
+==PID== by ADDRESS: TkpComputeButtonGeometry (tkUnixButton.c:602)
+==PID== by ADDRESS: TkButtonWorldChanged (tkButton.c:1392)
+==PID== by ADDRESS: ConfigureButton (tkButton.c:1279)
+==PID== by ADDRESS: ButtonWidgetObjCmd (tkButton.c:823)
+==PID== by ADDRESS: Call_Tk (tkGlue.c:2260)
+==PID== by ADDRESS: XStoWidget (tkGlue.c:2627)
+==PID== by ADDRESS: Perl_pp_entersub (in /usr/lib64/libperl.so.5.28.0)
+==PID== by ADDRESS: Perl_runops_standard (in /usr/lib64/libperl.so.5.28.0)
+==PID== by ADDRESS: perl_run (in /usr/lib64/libperl.so.5.28.0)
+==PID== by ADDRESS: main (perlmain.c:122)
+==PID==
+==PID== Conditional jump or move depends on uninitialised value(s)
+==PID== at ADDRESS: Tk_ComputeTextLayout (tkFont.c:1976)
+==PID== by ADDRESS: TkpComputeButtonGeometry (tkUnixButton.c:602)
+==PID== by ADDRESS: TkButtonWorldChanged (tkButton.c:1392)
+==PID== by ADDRESS: ConfigureButton (tkButton.c:1279)
+==PID== by ADDRESS: ButtonWidgetObjCmd (tkButton.c:823)
+==PID== by ADDRESS: Call_Tk (tkGlue.c:2260)
+==PID== by ADDRESS: XStoWidget (tkGlue.c:2627)
+==PID== by ADDRESS: Perl_pp_entersub (in /usr/lib64/libperl.so.5.28.0)
+==PID== by ADDRESS: Perl_runops_standard (in /usr/lib64/libperl.so.5.28.0)
+==PID== by ADDRESS: perl_run (in /usr/lib64/libperl.so.5.28.0)
+==PID== by ADDRESS: main (perlmain.c:122)
+==PID==
+==PID== Conditional jump or move depends on uninitialised value(s)
+==PID== at ADDRESS: Tcl_NumUtfChars (encGlue.c:111)
+==PID== by ADDRESS: NewChunk (tkFont.c:3298)
+==PID== by ADDRESS: Tk_ComputeTextLayout (tkFont.c:1977)
+==PID== by ADDRESS: TkpComputeButtonGeometry (tkUnixButton.c:602)
+==PID== by ADDRESS: TkButtonWorldChanged (tkButton.c:1392)
+==PID== by ADDRESS: ConfigureButton (tkButton.c:1279)
+==PID== by ADDRESS: ButtonWidgetObjCmd (tkButton.c:823)
+==PID== by ADDRESS: Call_Tk (tkGlue.c:2260)
+==PID== by ADDRESS: XStoWidget (tkGlue.c:2627)
+==PID== by ADDRESS: Perl_pp_entersub (in /usr/lib64/libperl.so.5.28.0)
+==PID== by ADDRESS: Perl_runops_standard (in /usr/lib64/libperl.so.5.28.0)
+==PID== by ADDRESS: perl_run (in /usr/lib64/libperl.so.5.28.0)
+==PID==
+==PID== Conditional jump or move depends on uninitialised value(s)
+==PID== at ADDRESS: Tcl_NumUtfChars (encGlue.c:115)
+==PID== by ADDRESS: NewChunk (tkFont.c:3298)
+==PID== by ADDRESS: Tk_ComputeTextLayout (tkFont.c:1977)
+==PID== by ADDRESS: TkpComputeButtonGeometry (tkUnixButton.c:602)
+==PID== by ADDRESS: TkButtonWorldChanged (tkButton.c:1392)
+==PID== by ADDRESS: ConfigureButton (tkButton.c:1279)
+==PID== by ADDRESS: ButtonWidgetObjCmd (tkButton.c:823)
+==PID== by ADDRESS: Call_Tk (tkGlue.c:2260)
+==PID== by ADDRESS: XStoWidget (tkGlue.c:2627)
+==PID== by ADDRESS: Perl_pp_entersub (in /usr/lib64/libperl.so.5.28.0)
+==PID== by ADDRESS: Perl_runops_standard (in /usr/lib64/libperl.so.5.28.0)
+==PID== by ADDRESS: perl_run (in /usr/lib64/libperl.so.5.28.0)
+==PID==
+==PID== Conditional jump or move depends on uninitialised value(s)
+==PID== at ADDRESS: Tcl_NumUtfChars (encGlue.c:115)
+==PID== by ADDRESS: NewChunk (tkFont.c:3298)
+==PID== by ADDRESS: Tk_ComputeTextLayout (tkFont.c:1977)
+==PID== by ADDRESS: TkpComputeButtonGeometry (tkUnixButton.c:602)
+==PID== by ADDRESS: TkButtonWorldChanged (tkButton.c:1392)
+==PID== by ADDRESS: ConfigureButton (tkButton.c:1279)
+==PID== by ADDRESS: ButtonWidgetObjCmd (tkButton.c:823)
+==PID== by ADDRESS: Call_Tk (tkGlue.c:2260)
+==PID== by ADDRESS: XStoWidget (tkGlue.c:2627)
+==PID== by ADDRESS: Perl_pp_entersub (in /usr/lib64/libperl.so.5.28.0)
+==PID== by ADDRESS: Perl_runops_standard (in /usr/lib64/libperl.so.5.28.0)
+==PID== by ADDRESS: perl_run (in /usr/lib64/libperl.so.5.28.0)
+==PID==
+==PID== Use of uninitialised value of size 8
+==PID== at ADDRESS: Tcl_NumUtfChars (encGlue.c:117)
+==PID== by ADDRESS: NewChunk (tkFont.c:3298)
+==PID== by ADDRESS: Tk_ComputeTextLayout (tkFont.c:1977)
+==PID== by ADDRESS: TkpComputeButtonGeometry (tkUnixButton.c:602)
+==PID== by ADDRESS: TkButtonWorldChanged (tkButton.c:1392)
+==PID== by ADDRESS: ConfigureButton (tkButton.c:1279)
+==PID== by ADDRESS: ButtonWidgetObjCmd (tkButton.c:823)
+==PID== by ADDRESS: Call_Tk (tkGlue.c:2260)
+==PID== by ADDRESS: XStoWidget (tkGlue.c:2627)
+==PID== by ADDRESS: Perl_pp_entersub (in /usr/lib64/libperl.so.5.28.0)
+==PID== by ADDRESS: Perl_runops_standard (in /usr/lib64/libperl.so.5.28.0)
+==PID== by ADDRESS: perl_run (in /usr/lib64/libperl.so.5.28.0)
+==PID==
+==PID== Conditional jump or move depends on uninitialised value(s)
+==PID== at ADDRESS: Tk_ComputeTextLayout (tkFont.c:1985)
+==PID== by ADDRESS: TkpComputeButtonGeometry (tkUnixButton.c:602)
+==PID== by ADDRESS: TkButtonWorldChanged (tkButton.c:1392)
+==PID== by ADDRESS: ConfigureButton (tkButton.c:1279)
+==PID== by ADDRESS: ButtonWidgetObjCmd (tkButton.c:823)
+==PID== by ADDRESS: Call_Tk (tkGlue.c:2260)
+==PID== by ADDRESS: XStoWidget (tkGlue.c:2627)
+==PID== by ADDRESS: Perl_pp_entersub (in /usr/lib64/libperl.so.5.28.0)
+==PID== by ADDRESS: Perl_runops_standard (in /usr/lib64/libperl.so.5.28.0)
+==PID== by ADDRESS: perl_run (in /usr/lib64/libperl.so.5.28.0)
+==PID== by ADDRESS: main (perlmain.c:122)
+==PID==
+==PID== Conditional jump or move depends on uninitialised value(s)
+==PID== at ADDRESS: Tk_ComputeTextLayout (tkFont.c:2024)
+==PID== by ADDRESS: TkpComputeButtonGeometry (tkUnixButton.c:602)
+==PID== by ADDRESS: TkButtonWorldChanged (tkButton.c:1392)
+==PID== by ADDRESS: ConfigureButton (tkButton.c:1279)
+==PID== by ADDRESS: ButtonWidgetObjCmd (tkButton.c:823)
+==PID== by ADDRESS: Call_Tk (tkGlue.c:2260)
+==PID== by ADDRESS: XStoWidget (tkGlue.c:2627)
+==PID== by ADDRESS: Perl_pp_entersub (in /usr/lib64/libperl.so.5.28.0)
+==PID== by ADDRESS: Perl_runops_standard (in /usr/lib64/libperl.so.5.28.0)
+==PID== by ADDRESS: perl_run (in /usr/lib64/libperl.so.5.28.0)
+==PID== by ADDRESS: main (perlmain.c:122)
+==PID==
+==PID== Conditional jump or move depends on uninitialised value(s)
+==PID== at ADDRESS: Tk_ComputeTextLayout (tkFont.c:2048)
+==PID== by ADDRESS: TkpComputeButtonGeometry (tkUnixButton.c:602)
+==PID== by ADDRESS: TkButtonWorldChanged (tkButton.c:1392)
+==PID== by ADDRESS: ConfigureButton (tkButton.c:1279)
+==PID== by ADDRESS: ButtonWidgetObjCmd (tkButton.c:823)
+==PID== by ADDRESS: Call_Tk (tkGlue.c:2260)
+==PID== by ADDRESS: XStoWidget (tkGlue.c:2627)
+==PID== by ADDRESS: Perl_pp_entersub (in /usr/lib64/libperl.so.5.28.0)
+==PID== by ADDRESS: Perl_runops_standard (in /usr/lib64/libperl.so.5.28.0)
+==PID== by ADDRESS: perl_run (in /usr/lib64/libperl.so.5.28.0)
+==PID== by ADDRESS: main (perlmain.c:122)
+==PID==
+==PID== Conditional jump or move depends on uninitialised value(s)
+==PID== at ADDRESS: Tk_ComputeTextLayout (tkFont.c:1940)
+==PID== by ADDRESS: TkpComputeButtonGeometry (tkUnixButton.c:602)
+==PID== by ADDRESS: TkButtonWorldChanged (tkButton.c:1392)
+==PID== by ADDRESS: ConfigureButton (tkButton.c:1279)
+==PID== by ADDRESS: ButtonWidgetObjCmd (tkButton.c:823)
+==PID== by ADDRESS: Call_Tk (tkGlue.c:2260)
+==PID== by ADDRESS: XStoWidget (tkGlue.c:2627)
+==PID== by ADDRESS: Perl_pp_entersub (in /usr/lib64/libperl.so.5.28.0)
+==PID== by ADDRESS: Perl_runops_standard (in /usr/lib64/libperl.so.5.28.0)
+==PID== by ADDRESS: perl_run (in /usr/lib64/libperl.so.5.28.0)
+==PID== by ADDRESS: main (perlmain.c:122)
+==PID==
+==PID== Conditional jump or move depends on uninitialised value(s)
+==PID== at ADDRESS: Tk_MeasureChars (tkUnixXft.c:554)
+==PID== by ADDRESS: Tk_TextWidth (tkFont.c:1774)
+==PID== by ADDRESS: TkpComputeButtonGeometry (tkUnixButton.c:608)
+==PID== by ADDRESS: TkButtonWorldChanged (tkButton.c:1392)
+==PID== by ADDRESS: ConfigureButton (tkButton.c:1279)
+==PID== by ADDRESS: ButtonWidgetObjCmd (tkButton.c:823)
+==PID== by ADDRESS: Call_Tk (tkGlue.c:2260)
+==PID== by ADDRESS: XStoWidget (tkGlue.c:2627)
+==PID== by ADDRESS: Perl_pp_entersub (in /usr/lib64/libperl.so.5.28.0)
+==PID== by ADDRESS: Perl_runops_standard (in /usr/lib64/libperl.so.5.28.0)
+==PID== by ADDRESS: perl_run (in /usr/lib64/libperl.so.5.28.0)
+==PID== by ADDRESS: main (perlmain.c:122)
+==PID==
==PID==
==PID== HEAP SUMMARY:
-==PID== in use at exit: 7,460,071 bytes in 33,139 blocks
-==PID== total heap usage: 99,626 allocs, 66,487 frees, 17,400,121 bytes allocated
+==PID== in use at exit: 7,460,004 bytes in 33,142 blocks
+==PID== total heap usage: 99,583 allocs, 66,441 frees, 17,389,542 bytes allocated
==PID==
==PID== LEAK SUMMARY:
==PID== definitely lost: 23,450 bytes in 41 blocks
==PID== indirectly lost: 69,152 bytes in 33 blocks
-==PID== possibly lost: 7,166,005 bytes in 28,373 blocks
-==PID== still reachable: 201,464 bytes in 4,692 blocks
+==PID== possibly lost: 7,165,906 bytes in 28,376 blocks
+==PID== still reachable: 201,496 bytes in 4,692 blocks
==PID== of which reachable via heuristic:
==PID== newarray : 24,968 bytes in 764 blocks
==PID== suppressed: 0 bytes in 0 blocks
@@ -135,4 +396,4 @@
==PID==
==PID== For counts of detected and suppressed errors, rerun with: -v
==PID== Use --track-origins=yes to see where uninitialised values come from
-==PID== ERROR SUMMARY: 175 errors from 12 contexts (suppressed: 0 from 0)
+==PID== ERROR SUMMARY: 255 errors from 31 contexts (suppressed: 0 from 0)
|
From @eserteDana Sat, 27 Oct 2018 10:15:02 -0700, jkeenan reče:
I see "Out of memory" errors when running the test suite with 5.29.4. Probably it's a good idea to run smokers with memory resource limits (on my systems it's limited to 1 GB memory consumption) to protect the system from such problems. |
From @jkeenanOn Sat, 27 Oct 2018 17:30:58 GMT, slaven@rezic.de wrote:
These crashes were *not* in the context of smoke-testing. It was a simple attempt to install modules against perl-5.29.4 (or a commit very close to that) using 'cpanm' as the installer. This was done on my laptop which has lots of RAM and swap available. Over the past year I've done that many times on Linux, so these crashes with Tk are a recent development. Thank you very much. -- |
From @eserteDana Sat, 27 Oct 2018 13:32:07 -0700, jkeenan reče:
There's actually no difference between smoke-testing and normal installation of CPAN modules (if testing is not turned off). In fact, I use my smoke-test wrapper in normal life to install CPAN modules.
And Perl can easily address all of this memory.
A cursory look at the "Out of memory" failures suggest that this is another problem than the one discussed in this ticket. Maybe a bisect would help here (and of course limits have to be set before to protect the system from memory exhaustion). |
From @eserteDana Sat, 27 Oct 2018 14:07:01 -0700, slaven@rezic.de reče:
If the deprecated (but still existing) functions in Tk's encGlue.c are replaced, then the Out of memory errors do not happen anymore. These are: So it looks like changes in one or more of these functions were causing the problems. |
From @khwilliamsonOn 12/23/18 2:41 PM, slaven@rezic.de via RT wrote:
I don't understand what you are replacing them with.
|
From @eserteDana Wed, 26 Dec 2018 15:55:55 -0800, public@khwilliamson.com reče:
The Perl/Tk test suite fails with Out of memory errors since perl 5.29.x. This was not the case with earlier perl versions, and it is not the case after the above mentioned functions are not used anymore in Perl/Tk's encGlue.c. So it looks to me that there was a change in one or more of the mentioned functions which is causing the problems in Perl/Tk's test suite. |
From @khwilliamsonOn Thu, 27 Dec 2018 01:25:03 -0800, slaven@rezic.de wrote:
I tried to update this ticket some time ago, but it didn't take. Here is the commit message. commit b750228 PATCH: [perl #133347] Tk broken |
From @eserteDana Mon, 15 Apr 2019 20:19:20 -0700, khw reče:
There are again pass reports for Tk with bleadperl: I cannot reproduce the photo.t failure. Possibly a problem limited to a specific system/perl configuration --- this may be discussed in the Tk RT queue. From my point of view this ticket may be closed. Regards, |
From @khwilliamsonClosed with OP's concurrence |
@khwilliamson - Status changed from 'open' to 'pending release' |
From @khwilliamsonThank you for filing this report. You have helped make Perl better. With the release today of Perl 5.30.0, this and 160 other issues have been Perl 5.30.0 may be downloaded via: If you find that the problem persists, feel free to reopen this ticket. |
@khwilliamson - Status changed from 'pending release' to 'resolved' |
Migrated from rt.perl.org#133347 (status was 'resolved')
Searchable as RT133347$
The text was updated successfully, but these errors were encountered: