From owner-freebsd-stable@FreeBSD.ORG Tue Dec 23 13:18:29 2003 Return-Path: Delivered-To: freebsd-stable@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 4F60A16A4CE; Tue, 23 Dec 2003 13:18:29 -0800 (PST) Received: from smtp3.sentex.ca (smtp3.sentex.ca [64.7.153.18]) by mx1.FreeBSD.org (Postfix) with ESMTP id 2CE2543D50; Tue, 23 Dec 2003 13:18:17 -0800 (PST) (envelope-from mike@sentex.net) Received: from lava.sentex.ca (pyroxene.sentex.ca [199.212.134.18]) by smtp3.sentex.ca (8.12.10/8.12.10) with ESMTP id hBNLHxHF043003; Tue, 23 Dec 2003 16:17:59 -0500 (EST) (envelope-from mike@sentex.net) Received: from simian.sentex.net (simeon.sentex.ca [192.168.43.27]) by lava.sentex.ca (8.12.9p2/8.12.9) with ESMTP id hBNLI2Xw013054; Tue, 23 Dec 2003 16:18:02 -0500 (EST) (envelope-from mike@sentex.net) Message-Id: <6.0.1.1.0.20031223162207.09447888@209.112.4.2> X-Sender: mdtpop@209.112.4.2 (Unverified) X-Mailer: QUALCOMM Windows Eudora Version 6.0.1.1 Date: Tue, 23 Dec 2003 16:23:14 -0500 To: David Wolfskill , stable@freebsd.org From: Mike Tancsa In-Reply-To: <200312232111.hBNLB71D006708@bunrab.catwhisker.org> References: <200312232111.hBNLB71D006708@bunrab.catwhisker.org> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii"; format=flowed X-Virus-Scanned: by amavisd-new cc: jhk@freebsd.org Subject: Re: Segmentation fault in csh if "setenv LC_ALL C" is sourced X-BeenThere: freebsd-stable@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: Production branch of FreeBSD source code List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 23 Dec 2003 21:18:29 -0000 At 04:11 PM 23/12/2003, David Wolfskill wrote: >This was a rather surprising development this morning. My guess its related to jkh 2003/12/22 12:45:16 PST FreeBSD src repository Modified files: (Branch: RELENG_4) lib/libc/locale ldpart.c Log: MFC: fix memory leak in setlocale() helper functions. PR#: misc/59910 Revision Changes Path 1.7.2.4 +6 -6 src/lib/libc/locale/ldpart.c >I had updated my -STABLE sources per my daily ritual, then did the >usual "make buildworld" & friends and rebooted. I logged in (via xdm's >login screen, as usual), and got a login screen before I had a chance to >enter my SSH passphrase. Repeated attempts yielded the same effect. > >I switched to a vty and logged in ... and was presented with a login >prompt immediately. This was also repeatable. :-{ > >I logged in as root -- successfully. > >I moved aside ~david/.cshrc, and was then able to login as "david". > >I then tried "source .cshrc.save" and found that csh got a Segmentation >fault while processing that directive. Trying various incantations with >"csh -x" indicated that there was something about the "setenv LC_ALL C" >line in my ~/.cshrc that it didn't like at all, so I created a new >~/.cshrc like the old one, but without that line (and the one before >it); csh seemed to cope with that OK. > >So here's the result from what debugging I've done so far. I confess >that I'm fairly rusty with gdb, but I'm willing to poke aroud: > >Script started on Tue Dec 23 12:25:20 2003 >localhost(4.9-S)[1] uname -a >FreeBSD localhost 4.9-STABLE FreeBSD 4.9-STABLE #24: Tue Dec 23 06:23:02 >PST >2003 root@d146.catwhisker.org:/common/S1/obj/usr/src/sys/LAPTOP_30W i386 >localhost(4.9-S)[2] diff -u .cshrc.save .cshrc >--- .cshrc.save Thu Sep 18 05:56:33 2003 >+++ .cshrc Tue Dec 23 06:39:14 2003 >@@ -125,8 +125,8 @@ > setenv PAGER less > setenv RNINIT ~/.rninit > setenv FTP_PASSIVE_MODE >-setenv LANG en_US.ISO8859-1 >-setenv LC_ALL C >+# setenv LANG en_US.ISO8859-1 >+# setenv LC_ALL C > unset autologout > set history = 900 > unset noclobber >localhost(4.9-S)[3] csh -x >localhost(4.9-S)[1] source .cshrc.save >source .cshrc.save >set npath = >if ( 1 ) then >set dir = ~/bin/FreeBSD >if ( -d /home/david/bin/FreeBSD ) then >true >else >else >if ( 1 ) then >if { test -n /home/david/bin/FreeBSD } then >test -n /home/david/bin/FreeBSD >if ( -d /home/david/bin/FreeBSD ) then >set npath = /home/david/bin/FreeBSD >endif >endif >endif >setenv SYMONHOME /opt/SUNWsymon >set path = ( /home/david/bin/FreeBSD ~/bin /bin /usr/bin /sbin /usr/sbin >/usr/local/sbin /usr/local/bin /usr/local/pbm /usr/local/rdb >/usr/local/bin/mh /usr/share/bin /usr/ucb /usr/local/games /usr/games >/usr/X11R6/bin /usr/local/etc /usr/etc /etc /usr/local/office52/program ) >set HOST = `hostname | sed -e 's/\..*$//'` >hostname >sed -e s/\..*$// >if ( ! 0 ) then >if ( 1 != 0 ) then >if { test -z %m(4.9-S)[%h] } exit >test -z %m(4.9-S)[%h] >set u = `uname -r` >uname -r >set ul = `echo ${u} | sed -e 's/-.*//'` >sed -e s/-.*// >echo 4.9-STABLE >set ur = `echo ${u} | sed -e 's/^[^-]*-//'` >sed -e s/^[^-]*-// >echo 4.9-STABLE >switch ( STABLE ) >set ur = -S >breaksw >set u = 4.9-S >if ( ! 1 ) then >set prompt = %m(4.9-S)[%h] >endif >switch ( FreeBSD ) >setenv XAPPLRESDIR /usr/X11R6/lib/X11/app-defaults >setenv LD_LIBRARY_PATH /usr/lib:/usr/local/X11/lib:/usr/local/lib >setenv MY_WM tvtwm >setenv MANPATH >~/man:/usr/local/man:/usr/share/man:/usr/X11R6/man:/usr/local/lib/perl5/5.6.0/man:/usr/share/perl/man:/usr/local/lib/perl5/5.00503/man:/usr/local/games/man:/usr/local/lib/perl5/5.6.1/man >breaksw >endif >if ( 0 ) exit >setenv GROFF_TMAC_PATH /usr/local/tmac:.:/usr/share/groff/tmac >setenv ADDRPATH /home/david/addr:/home/david/addr/business >setenv PRINTER lp >setenv LPDEST lp >setenv EDITOR vi >setenv LESS -sMci >setenv CVSROOT /cvs >setenv HOSTALIASES ~/.hostaliases >setenv BLOCKSIZE 1k >setenv NNTPSERVER news.sf.sbcglobal.net >setenv MM_NOASK image/* >setenv PAGER less >setenv RNINIT ~/.rninit >setenv FTP_PASSIVE_MODE >setenv LANG en_US.ISO8859-1 >Segmentation fault (core dumped) >localhost(4.9-S)[4] echo "I built a debug csh in /usr/obj/usr/src/bin/csh" >I built a debug csh in /usr/obj/usr/src/bin/csh >localhost(4.9-S)[5] /usr/obj/usr/src/bin/csh/csh -x >localhost(4.9-S)[1] source .cshrc.save >source .cshrc.save >[very similar output to the above elided -- dhw] >... >setenv LANG en_US.ISO8859-1 >Segmentation fault (core dumped) >localhost(4.9-S)[6] ^Dexit > >Script done on Tue Dec 23 12:57:51 2003 > >OK; here's what gdb said (via cut'n'paste): > >localhost(4.9-S)[17] gdb /usr/obj/usr/src/bin/csh/csh csh.core >GNU gdb 4.18 (FreeBSD) >Copyright 1998 Free Software Foundation, Inc. >GDB is free software, covered by the GNU General Public License, and you are >welcome to change it and/or distribute copies of it under certain conditions. >Type "show copying" to see the conditions. >There is absolutely no warranty for GDB. Type "show warranty" for details. >This GDB was configured as "i386-unknown-freebsd"...Deprecated bfd_read >called a >t /usr/src/gnu/usr.bin/binutils/gdb/../../../../contrib/gdb/gdb/dbxread.c >line 2 >627 in elfstab_build_psymtabs >Deprecated bfd_read called at >/usr/src/gnu/usr.bin/binutils/gdb/../../../../cont >rib/gdb/gdb/dbxread.c line 933 in fill_symbuf > >Core was generated by `csh'. >Program terminated with signal 11, Segmentation fault. >#0 0x80ad21f in __part_load_locale () >(gdb) bt >#0 0x80ad21f in __part_load_locale () >#1 0x80ad0bf in __monetary_load_locale () >#2 0x8090296 in setlocale () >#3 0x808fffc in setlocale () >#4 0x8055fa5 in dosetenv (v=0x812fc40, c=0x8138e00) > at /usr/src/bin/csh/../../contrib/tcsh/sh.func.c:1358 >#5 0x80545dc in func (t=0x8138e00, bp=0x80df1f8) > at /usr/src/bin/csh/../../contrib/tcsh/sh.func.c:145 >#6 0x8061ca7 in execute (t=0x8138e00, wanttty=1210, pipein=0x0, pipeout=0x0, > do_glob=1) at /usr/src/bin/csh/../../contrib/tcsh/sh.sem.c:654 >#7 0x8061f30 in execute (t=0x8132da0, wanttty=1210, pipein=0x0, pipeout=0x0, > do_glob=1) at /usr/src/bin/csh/../../contrib/tcsh/sh.sem.c:731 >#8 0x804aab8 in process (catch=0) > at /usr/src/bin/csh/../../contrib/tcsh/sh.c:2159 >#9 0x804a349 in srcunit (unit=3, onlyown=0, hflg=0, av=0x812fde8) > at /usr/src/bin/csh/../../contrib/tcsh/sh.c:1691 >#10 0x8049d62 in srcfile (f=0xbfbfa130 ".cshrc.save", onlyown=0, flag=0, > av=0x812fde8) at /usr/src/bin/csh/../../contrib/tcsh/sh.c:1470 >#11 0x804ad63 in dosource (t=0x812fde0, c=0x815d3a0) > at /usr/src/bin/csh/../../contrib/tcsh/sh.c:2205 >#12 0x80545dc in func (t=0x815d3a0, bp=0x80df238) > at /usr/src/bin/csh/../../contrib/tcsh/sh.func.c:145 >#13 0x8061ca7 in execute (t=0x815d3a0, wanttty=1210, pipein=0x0, pipeout=0x0, >---Type to continue, or q to quit--- > do_glob=1) at /usr/src/bin/csh/../../contrib/tcsh/sh.sem.c:654 >#14 0x8061f30 in execute (t=0x815d380, wanttty=1210, pipein=0x0, pipeout=0x0, > do_glob=1) at /usr/src/bin/csh/../../contrib/tcsh/sh.sem.c:731 >#15 0x804aab8 in process (catch=1) > at /usr/src/bin/csh/../../contrib/tcsh/sh.c:2159 >#16 0x8049b07 in main (argc=0, argv=0xbfbff53c) > at /usr/src/bin/csh/../../contrib/tcsh/sh.c:1341 >(gdb) frame 4 >#4 0x8055fa5 in dosetenv (v=0x812fc40, c=0x8138e00) > at /usr/src/bin/csh/../../contrib/tcsh/sh.func.c:1358 >1358 (void) setlocale(LC_ALL, ""); >(gdb) p dont_free >$1 = 0 >(gdb) p k >$2 = 135461960 >(gdb) frame 3 >#3 0x808fffc in setlocale () >(gdb) > > >And looking at the man page for setlocale(), I don't see anything special >regarding the second argument being a string of length 0. > >I note further that along with tracking -STABLE on a daily basis, >I've also been tracking -CURRENT on a daily basis on the same >machine, using the same home directory (and thus, the same .cshrc). And >I never saw this issue pop up on -CURRENT. > >Am I the only one to see this? Am I doing something wrong (or at least, >unsupported)? > >Thanks in advance for clues! > >Peace, >david >-- >David H. Wolfskill david@catwhisker.org >If you want true virus-protection for your PC, install a non-Microsoft OS >on it. Plausible candidates include FreeBSD, Linux, NetBSD, OpenBSD, and >Solaris (in alphabetical order). >_______________________________________________ >freebsd-stable@freebsd.org mailing list >http://lists.freebsd.org/mailman/listinfo/freebsd-stable >To unsubscribe, send any mail to "freebsd-stable-unsubscribe@freebsd.org"