chiark / gitweb /
@@@ extra
[mLib] / sys / mdup.c
index ee7816a9eb6e2e495d9907f92de0800c7c7a4230..ed483bbe054ac29168f595bd103f1a8ed698cd35 100644 (file)
@@ -32,6 +32,7 @@
 
 #include <unistd.h>
 
+#include "alloc.h"
 #include "mdup.h"
 
 /*----- Data structures ---------------------------------------------------*/
@@ -137,8 +138,9 @@ enum {
 
 #define D(x) x
 
-static void PRINTF_LIKE(4, 5) IGNORABLE
-  dump(mdup_fdinfo *v, size_t n, mdup_fdinfo *dhead, const char *fmt, ...)
+static PRINTF_LIKE(4, 5) IGNORABLE
+  void dump(mdup_fdinfo *v, size_t n, mdup_fdinfo *dhead,
+           const char *fmt, ...)
 {
   int i;
   mdup_fdinfo *f, *g;
@@ -375,7 +377,7 @@ int mdup(mdup_fd *v, size_t n)
    * way.
    */
 
-  if ((vv = malloc(sizeof(*vv) * n)) == 0)
+  if (!NEWV_SAFE_P(vv, n) || (vv = malloc(n*sizeof(*vv))) == 0)
     return (-1);
 
   dhead = 0;