From mboxrd@z Thu Jan 1 00:00:00 1970 X-Msuck: nntp://news.gmane.org/gmane.linux.lib.musl.general/3382 Path: news.gmane.org!not-for-mail From: plan9assembler Newsgroups: gmane.linux.lib.musl.general Subject: Re: util-linux-2.23 mount segmentation fault error Date: Thu, 30 May 2013 15:11:09 +0900 Message-ID: References: <20130525162604.GY20323@brightrain.aerifal.cx> <20130526091432.GE31915@port70.net> <20130527142929.GF31915@port70.net> <51A60C74.6050500@gentoo.org> <20130529200453.GC7095@port70.net> Reply-To: musl@lists.openwall.com NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: multipart/alternative; boundary=047d7bf17d6c4dece104dde95d5a X-Trace: ger.gmane.org 1369894283 31859 80.91.229.3 (30 May 2013 06:11:23 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Thu, 30 May 2013 06:11:23 +0000 (UTC) To: musl@lists.openwall.com Original-X-From: musl-return-3386-gllmg-musl=m.gmane.org@lists.openwall.com Thu May 30 08:11:24 2013 Return-path: Envelope-to: gllmg-musl@plane.gmane.org Original-Received: from mother.openwall.net ([195.42.179.200]) by plane.gmane.org with smtp (Exim 4.69) (envelope-from ) id 1Uhw54-00076U-WD for gllmg-musl@plane.gmane.org; Thu, 30 May 2013 08:11:23 +0200 Original-Received: (qmail 16209 invoked by uid 550); 30 May 2013 06:11:21 -0000 Mailing-List: contact musl-help@lists.openwall.com; run by ezmlm Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: Original-Received: (qmail 16201 invoked from network); 30 May 2013 06:11:21 -0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :content-type; bh=WTutAe0MT7dnxGKox8C2Ht+KTgYCJ2f37eVrWKEqpzs=; b=ojB7WRC8qq+mUxziBtAaqOnuc/gnaxQsNZCKxGCvEmfx9YwNb9FuCMMXT63t9qYBn4 VpfTBqFcJYv4saCGCuI+fKxqRx1JO0Y+Qf+18uI9bgj2ybPuLb8OvurqTRbcQTiwWmrW 9oyUhOMxlVl+39hRcVwEMLAA9PQkpPtgr4cFTJYbO1hzxIjwDPV9LUZWk064Fzfn7Z59 2Oth7RVYS2zLUWlv2sz7nUvaC1WHitfgwLx2jfdK2mKuQlSkw4TcHiUeKD0pjg+v0t27 9O3CtYArp2pXjxxG+zdxQ1t5iAF1W5M5Da9dgzFOUpGEuLdrNkQxjzedeI2JkNqtshEa iTeA== X-Received: by 10.66.100.231 with SMTP id fb7mr6689558pab.162.1369894269347; Wed, 29 May 2013 23:11:09 -0700 (PDT) In-Reply-To: Xref: news.gmane.org gmane.linux.lib.musl.general:3382 Archived-At: --047d7bf17d6c4dece104dde95d5a Content-Type: text/plain; charset=ISO-8859-1 here is backtrace of gdb for "./mount /dev/sda1 /mnt" Program received signal SIGSEGV, Segmentation fault. 0x00007ffff7dd58fb in strlen () from /lib/ld-musl-x86_64.so.1 (gdb) at #0 0x00007ffff7dd58fb in strlen () from /lib/ld-musl-x86_64.so.1 #1 0x00007ffff79614b6 in unmangle_string (s=0x6164732f7665642f
) at ./include/mangle.h:17 #2 mnt_parse_table_line (s=0x7fffffffe640 "/dev/sda1 /mnt ext4 rw 0 0", fs=0x608f00) at libmount/src/tab_parse.c:78 #3 mnt_table_parse_next (tb=tb@entry=0x7ffff7ffb360, f=f@entry=0x608a00, fs=fs@entry=0x608f00, filename=filename@entry=0x7ffff7973e78 "/etc/mtab", nlines=nlines@entry=0x7fffffffeab4) at at libmount/src/tab_parse.c:396 #4 0x00007ffff79618e7 in mnt_table_parse_stream (tb=tb@entry=0x7ffff7ffb360, f=f@entry=0x608a00, filename=, filename@entry=0x7ffff7973e78 "/etc/mtab") at libmount/src/tab_parse.c:529 #5 0x00007ffff7961e26 in mnt_table_parse_file (tb=0x7ffff7ffb360, filename=0x7ffff7973e78 "/etc/mtab") at libmount/src/tab_parse.c:584 #6 0x00007ffff796246f in mnt_table_parse_mtab (tb=0x7ffff7ffb360, filename=0x7ffff7973e78 "/etc/mtab") at libmount/src/tab_parse.c:968 #7 0x00007ffff794fbf5 in mnt_context_get_mtab (cxt=cxt@entry=0x7ffff7ffb260, tb=tb@entry=0x7fffffffec90) at libmount/src/context.c:958 #8 0x0000000000403c7d in print_all (show_label=0, pattern=0x0, cxt=0x7ffff7ffb260) at sys-utils/mount.c:130 #9 main (argc=0, argv=0x7fffffffed40) at sys-utils/mount.c:1004 (gdb) On Thu, May 30, 2013 at 7:17 AM, plan9assembler wrote: > correction: > > #if 1 > #define _IO(a,b) _IOC(0U,(a),(b),0) //? > #define _IOW(a,b,c) _IOC(1U,(a),(b),sizeof(c)) //? > #else > #define _IO(a,b) _IOC(0,(a),(b),0) //ok > #define _IOW(a,b,c) _IOC(1,(a),(b),sizeof(c)) //ok > #endif > > #define _IOR(a,b,c) _IOC(2U,(a),(b),sizeof(c)) //ok > - #define _IOW(a,b,c) _IOC(3U,(a),(b),sizeof(c)) //ok > + #define _IOWR(a,b,c) _IOC(3U,(a),(b),sizeof(c)) //ok > > > On Thu, May 30, 2013 at 7:07 AM, plan9assembler wrote: > >> could you send me the patch? i will test it. >> >> BTW, in latest musl-git version, i found something wrong with ioctl.h >> >> #if 1 >> #define _IO(a,b) _IOC(0U,(a),(b),0) //? >> #define _IOW(a,b,c) _IOC(1U,(a),(b),sizeof(c)) //? >> #else >> #define _IO(a,b) _IOC(0,(a),(b),0) //ok >> #define _IOW(a,b,c) _IOC(1,(a),(b),sizeof(c)) //ok >> #endif >> >> #define _IOR(a,b,c) _IOC(2U,(a),(b),sizeof(c)) //ok >> #define _IOW(a,b,c) _IOC(3U,(a),(b),sizeof(c)) //ok >> >> if i set 0, it works fine run as "./mount", but set 1 then, >> >> >> # ./mount /dev/sda1 /mnt >> EXT4-fs (sda1): mounted filesystem with ordered data mode. Opts: (null) >> >> < 30 - 40 seconds waiting without return to shell> >> >> mount: /mnt: filesystem mounted, but mount(8) failedOperation timed out >> // <-- this is weird. >> # >> >> >> >> >> >> On Thu, May 30, 2013 at 5:04 AM, Szabolcs Nagy wrote: >> >>> * plan9assembler [2013-05-29 23:41:13 +0900]: >>> > util-linux umount gets segfaults randomly..(X) >>> > util-linux umount gets segfaults always..(O) >>> > >>> > # ./umount /mnt >>> > traps: umount[9444] general protection ip:7f9c48e618fb sp:7fff72447b88 >>> > error:0 in libc.so[7f9c48e16000+72000] >>> > Segmentation fault. >>> >>> it seems util-linux uses sscanf with %ms to parse mtab >>> in libmount in tab_parse.c >>> >>> after i fixed that mount and umount does not segfault here >>> (used fixed size malloc and %s instead) >>> >> >> > --047d7bf17d6c4dece104dde95d5a Content-Type: text/html; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable
here is backtrace of gdb for "./mount /dev/sda1 /mnt"
<= br>
Program received signal SIGSEGV, Segmentation fault.
0x00= 007ffff7dd58fb in strlen () from /lib/ld-musl-x86_64.so.1
(gdb) at
#0=A0 0x00007ffff7dd58fb in strlen () from /lib/ld-= musl-x86_64.so.1
#1=A0 0x00007ffff79614b6 in unmangle_string (s=3D= 0x6164732f7665642f <Address 0x616732f7665642 out of bounds>) at ./inc= lude/mangle.h:17
#2=A0 mnt_parse_table_line (s=3D0x7fffffffe640 "/dev/sda1 /mnt e= xt4 rw 0 0", fs=3D0x608f00) at libmount/src/tab_parse.c:78
#3= =A0 mnt_table_parse_next (tb=3Dtb@entry=3D0x7ffff7ffb360, f=3Df@entry=3D0x6= 08a00, fs=3Dfs@entry=3D0x608f00, filename=3Dfilename@entry=3D0x7ffff7973e78= "/etc/mtab", nlines=3Dnlines@entry=3D0x7fffffffeab4) at at libmo= unt/src/tab_parse.c:396
#4=A0 0x00007ffff79618e7 in mnt_table_parse_stream (tb=3Dtb@entry=3D0= x7ffff7ffb360, f=3Df@entry=3D0x608a00, filename=3D<optimzed out>, fil= ename@entry=3D0x7ffff7973e78 "/etc/mtab") at libmount/src/tab_par= se.c:529
#5=A0 0x00007ffff7961e26 in mnt_table_parse_file (tb=3D0x7ffff7ffb360= , filename=3D0x7ffff7973e78 "/etc/mtab") at libmount/src/tab_pars= e.c:584
#6=A0 0x00007ffff796246f in mnt_table_parse_mtab (tb=3D0x7ffff7f= fb360, filename=3D0x7ffff7973e78 "/etc/mtab") at libmount/src/tab= _parse.c:968
#7=A0 0x00007ffff794fbf5 in mnt_context_get_mtab (cxt=3Dcxt@entry=3D0= x7ffff7ffb260, tb=3Dtb@entry=3D0x7fffffffec90) at libmount/src/context.c:95= 8
#8=A0 0x0000000000403c7d in print_all (show_label=3D0, pattern= =3D0x0, cxt=3D0x7ffff7ffb260) at sys-utils/mount.c:130
#9=A0 main (argc=3D0, argv=3D0x7fffffffed40) at sys-utils/mount.c:100= 4
(gdb)



On = Thu, May 30, 2013 at 7:17 AM, plan9assembler <plan9assembler@gmail= .com> wrote:
correction:

#if 1=A0
#define _IO(a,b) _IOC(0U,(a),(b),0)=A0=A0=A0= =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 //?
#define _IOW(a,b,c) _IOC(1U,(a),(b),sizeof(c)) //?
#els= e
#define _IO(a,b) _IOC(0,(a),(b),0)=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0= =A0=A0=A0=A0=A0=A0=A0=A0 //ok
#define _IOW(a,b,c) _IOC(1,(a),= (b),sizeof(c))=A0=A0 //ok
#endif

#define _IOR(a,b,c) _IOC(2U,(a),(b),sizeof(c))=A0 //ok
- #define _IOW(a,b,c) _IOC(3U,(a),(b),sizeof(c)) //ok
+ #d= efine _IOWR(a,b,c) _IOC(3U,(a),(b),sizeof(c)) //ok


On Thu, May 30, 2013 at 7:07 AM, plan9as= sembler <plan9assembler@gmail.com> wrote:
could you send me the patch? i wi= ll test it.

BTW, in latest musl-git version, i found something= wrong with ioctl.h

#if 1=A0
#define _IO(a,b) _= IOC(0U,(a),(b),0)=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 //?
#define _IOW(a,b,c) _IOC(1U,(a),(b),sizeof(c)) //?
#els= e
#define _IO(a,b) _IOC(0,(a),(b),0)=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0= =A0=A0=A0=A0=A0=A0=A0=A0 //ok
#define _IOW(a,b,c) _IOC(1,(a),= (b),sizeof(c))=A0=A0 //ok
#endif

#define _IOR(a,b,c) _IOC(2U,(a),(b),sizeof(c))=A0 //ok
#define _IOW(a,b,c) _IOC(3U,(a),(b),sizeof(c)) //ok
<= br>
if i set 0, it works fine run as "./mount", but set 1 th= en,


# ./mount /dev/sda1 /mnt
EXT4-fs (sda1): mounted filesystem with ordered data mode. Opts: (null)

< 30 - 40  seconds waiting without return to shell>

mount: /mnt: filesystem mounted, but mount(8) failedOperation timed out
// <-- this is weird.
#


=

On Thu, May 30, 2013 at 5:04 AM, Szabolc= s Nagy <nsz@port70.net> wrote:
* plan9assembler <plan9assembler@gmail.com> [20= 13-05-29 23:41:13 +0900]:
> util-linux umount gets segfaults randomly..(X)
> util-linux umount gets segfaults always..(O)
>
> # ./umount /mnt
> traps: umount[9444] general protection ip:7f9c48e618fb sp:7fff72447b88=
> error:0 in libc.so[7f9c48e16000+72000]
> Segmentation fault.

it seems util-linux uses sscanf with %ms to parse mtab
in libmount in tab_parse.c

after i fixed that mount and umount does not segfault here
(used fixed size malloc and %s instead)



--047d7bf17d6c4dece104dde95d5a--