Date: Mon, 14 May 2001 23:09:34 -0700 From: Terry Lambert <tlambert2@mindspring.com> To: John Hay <jhay@icomtek.csir.co.za> Cc: sobomax@FreeBSD.ORG, current@FreeBSD.ORG Subject: Re: -CURRENT b0rked? Message-ID: <3B00C81E.C0A01781@mindspring.com> References: <200105131513.f4DFD2l91900@zibbi.icomtek.csir.co.za>
next in thread | previous in thread | raw e-mail | index | archive | help
John Hay wrote: > > > > > > > > > It seems that sysinstall(8) was not fully integrated into > > > > buildworld - it depends on content of /usr/share/syscons/keymaps, > > > > while it shouldn't. > > > > > > > > I've just committed a patch that should fix this problem. > > > > You should look a little earlier in the logs to where the damage was really > > done: > > > > rm -f keymap.tmp > > for map in be.iso br275.iso danish.iso finnish.iso fr.iso german.iso hr.iso hu. > > iso2.101keys it.iso icelandic.iso jp.106 norwegian.iso pl_PL.ISO_8859-2 pt.iso > > ru.koi8-r si.iso spanish.iso swedish.iso swissfrench.iso swissgerman.iso ua.koi > > 8-u ua.koi8-u.shift.alt uk.iso us.dvorak us.iso us.pc-ctrl us.unix ; do env KE > > YMAP_PATH=/usr/src/usr.sbin/sysinstall/../../share/syscons/keymaps kbdcontrol - > > L $map | sed -e '/^static accentmap_t/,$d' >> keymap.tmp ; done > > Segmentation fault - core dumped > > ... > > > > It looks like kbdcontrol is not very happy. > > Ok, here is a patch that fix the problem for me. The problem is that > a second call to mkfullname() will reuse the memory at the pointer that > it returns, so you have to preserve it before then. > > John > -- > John Hay -- John.Hay@icomtek.csir.co.za > > Index: usr.sbin/kbdcontrol/kbdcontrol.c > =================================================================== > RCS file: /home/ncvs/src/usr.sbin/kbdcontrol/kbdcontrol.c,v > retrieving revision 1.34 > diff -u -r1.34 kbdcontrol.c > --- usr.sbin/kbdcontrol/kbdcontrol.c 2001/05/12 09:16:09 1.34 > +++ usr.sbin/kbdcontrol/kbdcontrol.c 2001/05/13 15:02:14 > @@ -751,8 +751,11 @@ > char *prefix[] = {"", "", KEYMAP_PATH, NULL}; > char *postfix[] = {"", ".kbd", NULL}; > > - if (cp = getenv("KEYMAP_PATH")) > - prefix[0] = mkfullname(cp, "/", ""); > + if (cp = getenv("KEYMAP_PATH")) { > + cp = mkfullname(cp, "/", ""); > + prefix[0] = malloc(strlen(cp) + 1); > + strcpy(prefix[0], cp); Alternately: prefix[0] = strdup(mkfullname(cp, "/", "")); Probably you should check for failures, though... -- Terry To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-current" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?3B00C81E.C0A01781>