X-Git-Url: https://git.gag.com/?a=blobdiff_plain;f=common%2Falloc.c;h=05ddffd55662279ff3d7f55371a745eb03cb78b1;hb=e8db7f6eea9b35527ddd4532affabd18a30549b5;hp=e1fe25843a2e9d5e3042ea7395c70841942febc4;hpb=98b9fd63cd28a3636a7cd24641b8f497eaadcd50;p=debian%2Fsudo diff --git a/common/alloc.c b/common/alloc.c index e1fe258..05ddffd 100644 --- a/common/alloc.c +++ b/common/alloc.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999-2005, 2007, 2010-2011 + * Copyright (c) 1999-2005, 2007, 2010-2013 * Todd C. Miller * * Permission to use, copy, modify, and distribute this software for any @@ -22,7 +22,6 @@ #include #include -#include #include #ifdef STDC_HEADERS # include @@ -51,6 +50,7 @@ #include "missing.h" #include "alloc.h" #include "error.h" +#include "errno.h" #define DEFAULT_TEXT_DOMAIN "sudo" #include "gettext.h" @@ -79,10 +79,10 @@ emalloc(size_t size) void *ptr; if (size == 0) - errorx2(1, _("internal error, tried to emalloc(0)")); + fatalx_nodebug(_("internal error, tried to emalloc(0)")); if ((ptr = malloc(size)) == NULL) - errorx2(1, _("unable to allocate memory")); + fatalx_nodebug(NULL); return ptr; } @@ -96,13 +96,13 @@ emalloc2(size_t nmemb, size_t size) void *ptr; if (nmemb == 0 || size == 0) - errorx2(1, _("internal error, tried to emalloc2(0)")); + fatalx_nodebug(_("internal error, tried to emalloc2(0)")); if (nmemb > SIZE_MAX / size) - errorx2(1, _("internal error, %s overflow"), "emalloc2()"); + fatalx_nodebug(_("internal error, %s overflow"), "emalloc2()"); size *= nmemb; if ((ptr = malloc(size)) == NULL) - errorx2(1, _("unable to allocate memory")); + fatalx_nodebug(NULL); return ptr; } @@ -117,14 +117,14 @@ ecalloc(size_t nmemb, size_t size) void *ptr; if (nmemb == 0 || size == 0) - errorx2(1, _("internal error, tried to ecalloc(0)")); + fatalx_nodebug(_("internal error, tried to ecalloc(0)")); if (nmemb != 1) { if (nmemb > SIZE_MAX / size) - errorx2(1, _("internal error, %s overflow"), "ecalloc()"); + fatalx_nodebug(_("internal error, %s overflow"), "ecalloc()"); size *= nmemb; } if ((ptr = malloc(size)) == NULL) - errorx2(1, _("unable to allocate memory")); + fatalx_nodebug(NULL); memset(ptr, 0, size); return ptr; } @@ -139,11 +139,11 @@ erealloc(void *ptr, size_t size) { if (size == 0) - errorx2(1, _("internal error, tried to erealloc(0)")); + fatalx_nodebug(_("internal error, tried to erealloc(0)")); ptr = ptr ? realloc(ptr, size) : malloc(size); if (ptr == NULL) - errorx2(1, _("unable to allocate memory")); + fatalx_nodebug(NULL); return ptr; } @@ -158,14 +158,14 @@ erealloc3(void *ptr, size_t nmemb, size_t size) { if (nmemb == 0 || size == 0) - errorx2(1, _("internal error, tried to erealloc3(0)")); + fatalx_nodebug(_("internal error, tried to erealloc3(0)")); if (nmemb > SIZE_MAX / size) - errorx2(1, _("internal error, %s overflow"), "erealloc3()"); + fatalx_nodebug(_("internal error, %s overflow"), "erealloc3()"); size *= nmemb; ptr = ptr ? realloc(ptr, size) : malloc(size); if (ptr == NULL) - errorx2(1, _("unable to allocate memory")); + fatalx_nodebug(NULL); return ptr; } @@ -182,14 +182,14 @@ erecalloc(void *ptr, size_t onmemb, size_t nmemb, size_t msize) size_t size; if (nmemb == 0 || msize == 0) - errorx2(1, _("internal error, tried to erecalloc(0)")); + fatalx_nodebug(_("internal error, tried to erecalloc(0)")); if (nmemb > SIZE_MAX / msize) - errorx2(1, _("internal error, %s overflow"), "erecalloc()"); + fatalx_nodebug(_("internal error, %s overflow"), "erecalloc()"); size = nmemb * msize; ptr = ptr ? realloc(ptr, size) : malloc(size); if (ptr == NULL) - errorx2(1, _("unable to allocate memory")); + fatalx_nodebug(NULL); if (nmemb > onmemb) { size = (nmemb - onmemb) * msize; memset((char *)ptr + (onmemb * msize), 0, size); @@ -248,12 +248,13 @@ easprintf(char **ret, const char *fmt, ...) { int len; va_list ap; + va_start(ap, fmt); len = vasprintf(ret, fmt, ap); va_end(ap); if (len == -1) - errorx2(1, _("unable to allocate memory")); + fatalx_nodebug(NULL); return len; } @@ -267,16 +268,6 @@ evasprintf(char **ret, const char *format, va_list args) int len; if ((len = vasprintf(ret, format, args)) == -1) - errorx2(1, _("unable to allocate memory")); + fatalx_nodebug(NULL); return len; } - -/* - * Wrapper for free(3) so we can depend on C89 semantics. - */ -void -efree(void *ptr) -{ - if (ptr != NULL) - free(ptr); -}