xref: /freebsd/contrib/ldns/compat/calloc.c (revision cfe30d02adda7c3b5c76156ac52d50d8cab325d9)
1*7b5038d7SDag-Erling Smørgrav /* Just a replacement, if the original malloc is not
2*7b5038d7SDag-Erling Smørgrav    GNU-compliant. See autoconf documentation. */
3*7b5038d7SDag-Erling Smørgrav 
4*7b5038d7SDag-Erling Smørgrav #if HAVE_CONFIG_H
5*7b5038d7SDag-Erling Smørgrav #include <ldns/config.h>
6*7b5038d7SDag-Erling Smørgrav #endif
7*7b5038d7SDag-Erling Smørgrav 
8*7b5038d7SDag-Erling Smørgrav void *calloc();
9*7b5038d7SDag-Erling Smørgrav 
10*7b5038d7SDag-Erling Smørgrav #if !HAVE_BZERO && HAVE_MEMSET
11*7b5038d7SDag-Erling Smørgrav # define bzero(buf, bytes)	((void) memset (buf, 0, bytes))
12*7b5038d7SDag-Erling Smørgrav #endif
13*7b5038d7SDag-Erling Smørgrav 
14*7b5038d7SDag-Erling Smørgrav void *
calloc(size_t num,size_t size)15*7b5038d7SDag-Erling Smørgrav calloc(size_t num, size_t size)
16*7b5038d7SDag-Erling Smørgrav {
17*7b5038d7SDag-Erling Smørgrav 	void *new = malloc(num * size);
18*7b5038d7SDag-Erling Smørgrav 	if (!new) {
19*7b5038d7SDag-Erling Smørgrav 		return NULL;
20*7b5038d7SDag-Erling Smørgrav 	}
21*7b5038d7SDag-Erling Smørgrav 	bzero(new, num * size);
22*7b5038d7SDag-Erling Smørgrav 	return new;
23*7b5038d7SDag-Erling Smørgrav }
24*7b5038d7SDag-Erling Smørgrav 
25