aboutsummaryrefslogtreecommitdiff
path: root/win32
diff options
context:
space:
mode:
Diffstat (limited to 'win32')
-rw-r--r--win32/mntent.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/win32/mntent.c b/win32/mntent.c
index 6d6ba319f..7ab51239d 100644
--- a/win32/mntent.c
+++ b/win32/mntent.c
@@ -8,7 +8,7 @@ struct mntdata {
8 DWORD flags; 8 DWORD flags;
9 int index; 9 int index;
10 struct mntent me; 10 struct mntent me;
11 char mnt_fsname[4]; 11 char mnt_fsname[PATH_MAX];
12 char mnt_dir[4]; 12 char mnt_dir[4];
13 char mnt_type[100]; 13 char mnt_type[100];
14 char mnt_opts[4]; 14 char mnt_opts[4];
@@ -33,6 +33,7 @@ struct mntent *getmntent(FILE *stream)
33 struct mntdata *data = (struct mntdata *)stream; 33 struct mntdata *data = (struct mntdata *)stream;
34 struct mntent *entry; 34 struct mntent *entry;
35 UINT drive_type; 35 UINT drive_type;
36 char buf[PATH_MAX];
36 37
37 data->me.mnt_fsname = data->mnt_fsname; 38 data->me.mnt_fsname = data->mnt_fsname;
38 data->me.mnt_dir = data->mnt_dir; 39 data->me.mnt_dir = data->mnt_dir;
@@ -63,6 +64,12 @@ struct mntent *getmntent(FILE *stream)
63 continue; 64 continue;
64 } 65 }
65 66
67 if (realpath(data->mnt_dir, buf) != NULL) {
68 if (isalpha(buf[0]) && strcmp(buf+1, ":/") == 0)
69 buf[2] = '\0';
70 strcpy(data->mnt_fsname, buf);
71 }
72
66 entry = &data->me; 73 entry = &data->me;
67 break; 74 break;
68 } 75 }