$NetBSD: patch-aa,v 1.15 2011/01/23 14:36:10 wiz Exp $ https://midnight-commander.org/ticket/2425 Fixes segmentation fault on NetBSD --- src/mountlist.c.orig 2010-11-08 11:46:14.000000000 +0000 +++ src/mountlist.c @@ -54,6 +54,7 @@ #ifdef MOUNTED_GETMNTINFO2 /* NetBSD 3.0. */ #include +#define statfs statvfs #endif #ifdef MOUNTED_GETMNT /* Ultrix. */ @@ -364,7 +365,8 @@ read_filesystem_list (int need_fs_type, #endif /* MOUNTED */ #endif /* MOUNTED_GETMNTENT1 */ -#ifdef MOUNTED_GETMNTINFO /* 4.4BSD. */ +#if defined(MOUNTED_GETMNTINFO) || defined(MOUNTED_GETMNTINFO2) +/* 4.4BSD and NetBSD>=3 */ { struct statfs *fsp; int entries; @@ -376,7 +378,7 @@ read_filesystem_list (int need_fs_type, me = (struct mount_entry *) malloc (sizeof (struct mount_entry)); me->me_devname = strdup (fsp->f_mntfromname); me->me_mountdir = strdup (fsp->f_mntonname); -#ifdef HAVE_STRUCT_STATFS_F_FSTYPENAME +#if defined(HAVE_STRUCT_STATFS_F_FSTYPENAME) || defined(MOUNTED_GETMNTINFO2) me->me_type = strdup (fsp->f_fstypename); #else me->me_type = fstype_to_string (fsp->f_type); @@ -392,28 +394,6 @@ read_filesystem_list (int need_fs_type, } #endif /* MOUNTED_GETMNTINFO */ -#ifdef MOUNTED_GETMNTINFO2 /* NetBSD 3.0. */ - { - struct statvfs *fsp; - int entries; - - entries = getmntinfo (&fsp, MNT_NOWAIT); - if (entries < 0) - return NULL; - for (; entries-- > 0; fsp++) { - me = (struct mount_entry *) malloc (sizeof (struct mount_entry)); - me->me_devname = strdup (fsp->f_mntfromname); - me->me_mountdir = strdup (fsp->f_mntonname); - me->me_type = strdup (fsp->f_fstypename); - me->me_dev = (dev_t) -1; /* Magic; means not known yet. */ - - /* Add to the linked list. */ - mtail->me_next = me; - mtail = me; - } - } -#endif /* MOUNTED_GETMNTINFO2 */ - #ifdef MOUNTED_GETMNT /* Ultrix. */ { int offset = 0;