Menu

#47 LoadXloginResources() in session.c coredumps dtlogin on OpenBSD 5.7

closed
nobody
None
2018-04-28
2015-06-14
No

When I try to use dtlogin on OpenBSD 5.7, it core dumps and restarts (only getting as far as the hourglass.)

This is the backtrace I was able to get from the core file:

#0  strchr () at /usr/src/lib/libc/arch/amd64/string/strchr.S:58
#1  0x00000ca6003130df in LoadXloginResources (d=0xca8d0d8b200) at session.c:688
#2  0x00000ca600312abe in ManageSession (d=0xca8d0d8b200) at session.c:431
#3  0x00000ca60030c7ae in StartDisplay (d=0xca8d0d8b200) at dm.c:1197
#4  0x00000ca60030bd88 in CheckDisplayStatus (d=0xca8d0d8b200) at dm.c:826
#5  0x00000ca60030d7bf in ForEachDisplay (f=0xca60030bba9 <CheckDisplayStatus>) at dpylist.c:73
#6  0x00000ca60030bd9e in StartDisplays () at dm.c:835
#7  0x00000ca60030b671 in WaitForChild () at dm.c:588
#8  0x00000ca60031b6b3 in WaitForSomething () at xdmcp.c:403
#9  0x00000ca60030af23 in main (argc=2, argv=0x7f7ffffd6bf8) at dm.c:314

Looking at LoadXloginResources() within session.c, this bit of code seems to trigger the core dump/crash:

    /*

     *  replace any "-" or "." in the language name with "_". The C
     *  preprocessor used by xrdb does not accept "-" or "." in a name.
     */

    while ( (p = strchr(language, '-')) != NULL ) {
        *p = '_';
    }

    while ( (p = strchr(language, '.')) != NULL ) {
        *p = '_';
    }

Any idea how to fix it?

Discussion

  • Karsten Pedersen

    It seems that language was uninitialized at that point.

    Oddly enough the language variable (or lang_key) is never used after these while loops so it was safe to just remove it.

    Attached is a patch. Dtlogin now works (Nice new logo btw) :)

    Also, I have summoned flibble (via PM) who is one of the maintainers of CDE. Hopefully we can get these 3 patches in.

     

    Last edit: Karsten Pedersen 2015-06-14
  • Douglas Carmichael

    Karsten:

    Thank you! :-)

    Glad I could help.

     
  • Jon Trulson

    Jon Trulson - 2016-06-19
    • status: open --> closed
     

Log in to post a comment.