bin/94045: dump(8) seg-fault on nullfs

Pietro Cerutti pietro.cerutti at gmail.com
Fri Mar 3 00:20:15 PST 2006


>Number:         94045
>Category:       bin
>Synopsis:       dump(8) seg-fault on nullfs
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    freebsd-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Fri Mar 03 08:20:07 GMT 2006
>Closed-Date:
>Last-Modified:
>Originator:     Pietro Cerutti
>Release:        6.0-STABLE
>Organization:
-
>Environment:
FreeBSD gahr 6.0-STABLE FreeBSD 6.0-STABLE #4: Wed Mar  1 16:51:41 CET 2006     toor at gahr:/usr/obj/usr/src/sys/GAHR  i386
>Description:
The dump(8) utility crashes on nullfs types, when they are mounted via fstab.

A nullfs is defined in the last row of /etc/fstab:

# Device          Mountpoint           FStype      Options     Dump  Pass#
/dev/ad0s2b       none                 swap        sw          0  0
/dev/ad0s2a       /                    ufs         rw          1  1
/dev/ad0s2f       /home                ufs         rw          2  2
/dev/ad0s2e       /usr                 ufs         rw          2  2
/dev/ad0s2d       /var                 ufs         rw          2  2
/dev/acd0         /cdrom               cd9660      ro,noauto   0  0
/dev/cd0          /cdrom               cd9660      ro,noauto   0  0
/dev/ad0s1        /mnt/win             ntfs        ro,noauto   0  0
/dev/da0          /mnt/pen             msdosfs     rw,noauto   0  0
linprocfs         /compat/linux/proc   linprocfs   rw          0  0
proc              /proc                procfs      rw          0  0
/usr/local/etc    /mnt/tmp             nullfs      rw,noauto   0  0

After mounting it with (# mount /mnt/tmp), it appears in the list of mounted filesystems (# mount). See the last row:

/dev/ad0s2a       on / (ufs, local)
devfs             on /dev (devfs, local)
/dev/ad0s2f       on /home (ufs, local, soft-updates)
/dev/ad0s2e       on /usr (ufs, local, soft-updates)
/dev/ad0s2d       on /var (ufs, local, soft-updates)
linprocfs         on /usr/compat/linux/proc (linprocfs, local)
procfs            on /proc (procfs, local)
pid747 at gahr:/net  on /net (nfs)
pid747 at gahr:/host on /host (nfs)
srv-file:/share   on /.amd_mnt/srv-file/host/share (nfs, nosuid)
/usr/local/etc    on /mnt/tmp (nullfs, local)

dump(8) seg-faults trying to dump it:

# dump -0 -f usr.local.etc /mnt/tmp
  DUMP: SIGSEGV: ABORTING!
Segmentation fault (core dumped)

The strange is that if the nullfs filesystem is not listed in /etc/fstab, and is mounted by hand (# mount_nullfs /usr/local/etc /mnt/tmp), then dump(8) gives an "unknown filesystem error), which is acceptable:

# mount_nullfs /usr/local/etc/ /mnt/tmp
# dump -0 -f usr.local.etc /mnt/tmp
dump: /mnt/tmp: unknown file system


>How-To-Repeat:
1) add a line in /etc/fstab specifying a nullfs mount point (e.g. /usr/ on /mnt)
2) mount it (e.g. mount /mnt)
3) try to dump it (e.g. dump -0 -f test /mnt)
-> dump should seg-fault

4) remove the line in /etc/fstab
5) mount a nullfs by hand (e.g. mount_nullfs /usr/ mnt/)
6) try to dump it (e.g dump -0 -f test /mnt)
-> dump should say "dump: /mnt: unknown file system"
>Fix:

>Release-Note:
>Audit-Trail:
>Unformatted:


More information about the freebsd-bugs mailing list