/
patch-aa
62 lines (57 loc) · 1.89 KB
/
patch-aa
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
$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 <sys/statvfs.h>
+#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;