chiark / gitweb /
@@@ extra
[mLib] / sys / mdup.c
index e86f2091b515ea90401a45b06b40284e8e60bf6b..ed483bbe054ac29168f595bd103f1a8ed698cd35 100644 (file)
@@ -32,6 +32,7 @@
 
 #include <unistd.h>
 
 
 #include <unistd.h>
 
+#include "alloc.h"
 #include "mdup.h"
 
 /*----- Data structures ---------------------------------------------------*/
 #include "mdup.h"
 
 /*----- Data structures ---------------------------------------------------*/
@@ -133,10 +134,13 @@ enum {
 #include <stdarg.h>
 #include <stdio.h>
 
 #include <stdarg.h>
 #include <stdio.h>
 
+#include "macros.h"
+
 #define D(x) x
 
 #define D(x) x
 
-static void 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;
 {
   int i;
   mdup_fdinfo *f, *g;
@@ -373,7 +377,7 @@ int mdup(mdup_fd *v, size_t n)
    * way.
    */
 
    * way.
    */
 
-  if ((vv = malloc(sizeof(*vv) * n)) == 0)
+  if (!NEWV_SAFE_P(vv, n) || (vv = malloc(n*sizeof(*vv))) == 0)
     return (-1);
 
   dhead = 0;
     return (-1);
 
   dhead = 0;