Use project-standard memory management rather than alloca()
[exim.git] / src / src / string.c
index 055a37fd66f366af68c480e90db66ec99f9c80ab..51b12c5e527921721213a26745483893db2c0f5a 100644 (file)
@@ -105,9 +105,7 @@ string_is_ip_addressX(const uschar *ip_addr, int *maskptr, const uschar **errp)
       if (errp) *errp = "rudiculous long ip address string";
       return 0;
     }
-    addr = alloca(l+1); /* *BSD does not have strndupa() */
-    Ustrncpy((uschar *)addr, ip_addr, l);
-    ((uschar*)addr)[l] = '\0';
+    addr = string_copyn(ip_addr, l);
   } else addr = ip_addr;
 
   int af;