make globfree safe after failed glob from over-length argument
[musl] / src / malloc / calloc.c
index c3dfb47..436c0b0 100644 (file)
@@ -1,22 +1,13 @@
 #include <stdlib.h>
 #include <errno.h>
 
+void *__malloc0(size_t);
+
 void *calloc(size_t m, size_t n)
 {
-       void *p;
-       size_t *z;
        if (n && m > (size_t)-1/n) {
                errno = ENOMEM;
                return 0;
        }
-       n *= m;
-       p = malloc(n);
-       if (!p) return 0;
-       /* Only do this for non-mmapped chunks */
-       if (((size_t *)p)[-1] & 7) {
-               /* Only write words that are not already zero */
-               m = (n + sizeof *z - 1)/sizeof *z;
-               for (z=p; m; m--, z++) if (*z) *z=0;
-       }
-       return p;
+       return __malloc0(n * m);
 }