]> granicus.if.org Git - transmission/commitdiff
(trunk, libT) #5275: fix platform quota crash on solaris 2.12, patch by godot
authorJordan Lee <jordan@transmissionbt.com>
Sun, 14 Jul 2013 23:00:39 +0000 (23:00 +0000)
committerJordan Lee <jordan@transmissionbt.com>
Sun, 14 Jul 2013 23:00:39 +0000 (23:00 +0000)
libtransmission/platform-quota.c

index fbae547247fae4efb5b323b6a4e507e45cd48600..035590e6fb726f1692e95b5a502e514e1d241100 100644 (file)
@@ -27,6 +27,9 @@
  #endif
  #ifdef HAVE_GETMNTENT
   #ifdef __sun
+   #include <sys/types.h>
+   #include <sys/stat.h>
+   #include <fcntl.h>
    #include <stdio.h>
    #include <sys/mntent.h>
    #include <sys/mnttab.h>
@@ -73,16 +76,16 @@ getdev (const char * path)
   FILE * fp;
 
 #ifdef __sun
-  struct mnttab mnt;
+  struct mnttab mnt;
   fp = fopen(_PATH_MOUNTED, "r");
   if (fp == NULL)
     return NULL;
 
-  while (getmntent(fp, mnt))
-    if (!tr_strcmp0 (path, mnt->mnt_mountp))
+  while (getmntent(fp, &mnt))
+    if (!tr_strcmp0 (path, mnt.mnt_mountp))
       break;
   fclose(fp);
-  return mnt ? mnt->mnt_fstype : NULL;
+  return mnt.mnt_special;
 #else
   struct mntent * mnt;
 
@@ -124,15 +127,15 @@ getfstype (const char * device)
 
   FILE * fp;
 #ifdef __sun
-  struct mnttab *mnt;
+  struct mnttab mnt;
   fp = fopen(_PATH_MOUNTED, "r");
   if (fp == NULL)
     return NULL;
-  while (getmntent(fp, mnt))
-    if (!tr_strcmp0 (device, mnt->mnt_mountp))
+  while (getmntent(fp, &mnt))
+    if (!tr_strcmp0 (device, mnt.mnt_mountp))
       break;
   fclose(fp);
-  return mnt ? mnt->mnt_fstype : NULL;
+  return mnt.mnt_fstype;
 #else
   struct mntent *mnt;