gnunet-svn
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[GNUnet-SVN] r9469 - gnunet/src/util


From: gnunet
Subject: [GNUnet-SVN] r9469 - gnunet/src/util
Date: Thu, 12 Nov 2009 08:45:16 -0700

Author: grothoff
Date: 2009-11-12 08:45:15 -0700 (Thu, 12 Nov 2009)
New Revision: 9469

Modified:
   gnunet/src/util/disk.c
   gnunet/src/util/test_strings.c
Log:
check properly for mmap failures

Modified: gnunet/src/util/disk.c
===================================================================
--- gnunet/src/util/disk.c      2009-11-12 15:40:43 UTC (rev 9468)
+++ gnunet/src/util/disk.c      2009-11-12 15:45:15 UTC (rev 9469)
@@ -1432,6 +1432,10 @@
 };
 
 
+#ifndef MAP_FAILED
+#define MAP_FAILED ((void *) -1)
+#endif
+
 /**
  * Map a file into memory
  *
@@ -1498,6 +1502,7 @@
   return ret;
 #else
   int prot;
+  int ec;
 
   prot = 0;
   if (access & GNUNET_DISK_MAP_TYPE_READ)
@@ -1506,6 +1511,14 @@
     prot |= PROT_WRITE;
   *m = GNUNET_malloc (sizeof (struct GNUNET_DISK_MapHandle));
   (*m)->addr = mmap (NULL, len, prot, MAP_SHARED, h->fd, 0);
+  GNUNET_assert (NULL != (*m)->addr);
+  if (MAP_FAILED == (*m)->addr)
+    {    
+      ec = errno;
+      GNUNET_free (*m);
+      errno = ec;
+      return NULL;
+    }
   (*m)->len = len;
   return (*m)->addr;
 #endif

Modified: gnunet/src/util/test_strings.c
===================================================================
--- gnunet/src/util/test_strings.c      2009-11-12 15:40:43 UTC (rev 9468)
+++ gnunet/src/util/test_strings.c      2009-11-12 15:45:15 UTC (rev 9469)
@@ -90,11 +90,11 @@
       GNUNET_free (r);
       return 1;
     }
+  GNUNET_free (r);
   b = GNUNET_STRINGS_to_utf8 ("TEST", 4, "ASCII");
   WANT ("TEST", b);
   b = GNUNET_STRINGS_to_utf8 ("TEST", 4, "unknown");
   WANT ("TEST", b);
-  GNUNET_free (r);
   return 0;
 }
 





reply via email to

[Prev in Thread] Current Thread [Next in Thread]