From: Greg Hudson Date: Thu, 11 Jul 2013 23:47:33 +0000 (-0400) Subject: Add k5calloc internal helper function X-Git-Tag: krb5-1.12-alpha1~109 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=90f9f6f6708baff4de2162c5eb754bb4bc557845;p=thirdparty%2Fkrb5.git Add k5calloc internal helper function Letting calloc() do multiplication helps avoid overflow bugs, so provide an internal k5calloc() helper which accepts both calloc arguments, and reimplement k5alloc() in terms of it. --- diff --git a/src/include/k5-int.h b/src/include/k5-int.h index 63e0e8a32e..e820b1ca46 100644 --- a/src/include/k5-int.h +++ b/src/include/k5-int.h @@ -2182,16 +2182,23 @@ authdata_eq(krb5_authdata a1, krb5_authdata a2) /* Allocate zeroed memory; set *code to 0 on success or ENOMEM on failure. */ static inline void * -k5alloc(size_t len, krb5_error_code *code) +k5calloc(size_t nmemb, size_t size, krb5_error_code *code) { void *ptr; /* Allocate at least one byte since zero-byte allocs may return NULL. */ - ptr = calloc((len > 0) ? len : 1, 1); + ptr = calloc(nmemb ? nmemb : 1, size ? size : 1); *code = (ptr == NULL) ? ENOMEM : 0; return ptr; } +/* Allocate zeroed memory; set *code to 0 on success or ENOMEM on failure. */ +static inline void * +k5alloc(size_t size, krb5_error_code *code) +{ + return k5calloc(1, size, code); +} + /* Return a copy of the len bytes of memory at in; set *code to 0 or ENOMEM. */ static inline void * k5memdup(const void *in, size_t len, krb5_error_code *code)