BusyBox-1.3.0: mount -a crashes

Denis Vlasenko vda.linux at googlemail.com
Fri Dec 15 13:58:20 PST 2006


On Friday 15 December 2006 21:14, Johannes Stezenbach wrote:
> Hi,
> 
> mount -a crashes with my fstab which contains an NFS mount.
> 
> The patch below seems to fix it for me. Here's a tracback
> from gdb when it crashes:
> 
> Program terminated with signal 11, Segmentation fault.
> #0  0x004b7e1c in free ()
> (gdb) bt
> #0  0x004b7e1c in free ()
> #1  0x0048d8c4 in nfsmount (mp=0x7ff34c70, vfsflags=32768, filteropts=0x5330c0 "soft,intr,tcp,nolock")
>     at util-linux/mount.c:839
> #2  0x0048efa0 in singlemount (mp=0x7ff34c70, ignore_busy=1) at util-linux/mount.c:1427
> #3  0x0048f9cc in mount_main (argc=0, argv=0x7ff34dfc) at util-linux/mount.c:1696
> #4  0x0040094c in run_applet_by_name (name=0x7ff34ec1 "mount", argc=2, argv=0x7ff34df4)
>     at applets/applets.c:481
> #5  0x00400ba8 in main (argc=5353373, argv=0x5330c0) at applets/busybox.c:71
> (gdb) f 1
> #1  0x0048d8c4 in nfsmount (mp=0x7ff34c70, vfsflags=32768, filteropts=0x5330c0 "soft,intr,tcp,nolock")
>     at util-linux/mount.c:839
> 839			free(mp->mnt_opts);
> (gdb) p mp
> $1 = (struct mntent *) 0x7ff34c70
> (gdb) p *mp
> $2 = {mnt_fsname = 0x51af78 "172.16.0.1:/nfsdir", mnt_dir = 0x51af90 "/mnt", mnt_type = 0x51af9d "nfs", 
>   mnt_opts = 0x51afa5 "soft,intr,tcp,nolock", mnt_freq = 0, mnt_passno = 0}
> 
> 
> 
> --- busybox-1.3.0/util-linux/mount.c.orig	2006-12-15 20:31:48.000000000 +0100
> +++ busybox-1.3.0/util-linux/mount.c	2006-12-15 20:32:58.000000000 +0100
> @@ -1693,10 +1693,12 @@ int mount_main(int argc, char **argv)
>  
>  			// Mount this thing.
>  
> +			mtcur->mnt_opts = xstrdup(mtcur->mnt_opts);
>  			if (singlemount(mtcur, 1)) {
>  				/* Count number of failed mounts */
>  				rc++;
>  			}
> +			free(mtcur->mnt_opts);
>  		}
>  	}
>  	if (ENABLE_FEATURE_CLEAN_UP) endmntent(fstab);

Awww, thanks! I see why it needs that...
--
vda


More information about the busybox mailing list