Menu

#1959 crash bug in '$text tag configure'

obsolete: 8.4.11
closed-fixed
9
2005-09-14
2005-09-12
Anonymous
No

In Tk 8.4.11, running the 'tag configure' subcommand on
a text widget for a tag which has not previously
been 'declared', with no arguments, crashes the
program. For example,

text .t
.t tag configure foobar

will crash, but

text .t
.t tag configure foobar -underline 0
.t tag configure foobar

will not.

Discussion

  • Don Porter

    Don Porter - 2005-09-12
    • priority: 5 --> 9
    • assigned_to: hobbs --> vincentdarley
     
  • Vince Darley

    Vince Darley - 2005-09-12
    • assigned_to: vincentdarley --> hobbs
     
  • Vince Darley

    Vince Darley - 2005-09-12

    Logged In: YES
    user_id=32170

    I have no knowledge about Tk 8.4's pre-objectified text
    widget. Handing over to maintainer.

     
  • Jeffrey Hobbs

    Jeffrey Hobbs - 2005-09-12
    • assigned_to: hobbs --> dkf
     
  • Jeffrey Hobbs

    Jeffrey Hobbs - 2005-09-12

    Logged In: YES
    user_id=72656

    This was caused by a change in generic/tkOldConfig.c by dkf
    when doing some sort of caching.

    Last few lines of a stack trace:

    Tk_ConfigureInfo(Tcl_Interp * 0x00a65240, Tk_Window_ *
    0x00c06a00, Tk_ConfigSpec * 0x004f4d88 tagConfigSpecs, char
    * 0x00c08468, const char * 0x00000000, int 0) line 697 + 3 bytes
    TkTextTagCmd(TkText * 0x00c06b18, Tcl_Interp * 0x00a65240,
    int 4, const char * * 0x0012e4e8) line 298 + 28 bytes
    TextWidgetCmd(void * 0x00c06b18, Tcl_Interp * 0x00a65240,
    int 4, const char * * 0x0012e4e8) line 862 + 21 bytes

    The problem is really line 697 where cachedSpecPtr is trying
    to be set to Tcl_GetHashValue of an entryPtr that is NULL.
    I'm passing to dkf as he knows more what was changed and why.

     
  • Donal K. Fellows

    Logged In: YES
    user_id=79902

    Factorized out the code that produces the code that creates
    writable copies of config specs and made that code called in
    all the appropriate places.

    Fixed in HEAD and 8.4 branch.

     
  • Donal K. Fellows

    • status: open --> closed-fixed