diff --git a/common/alloc.c b/common/alloc.c index e1fe25843..828271e03 100644 --- a/common/alloc.c +++ b/common/alloc.c @@ -51,6 +51,7 @@ #include "missing.h" #include "alloc.h" #include "error.h" +#include "errno.h" #define DEFAULT_TEXT_DOMAIN "sudo" #include "gettext.h" @@ -82,7 +83,7 @@ emalloc(size_t size) errorx2(1, _("internal error, tried to emalloc(0)")); if ((ptr = malloc(size)) == NULL) - errorx2(1, _("unable to allocate memory")); + errorx2(1, NULL); return ptr; } @@ -102,7 +103,7 @@ emalloc2(size_t nmemb, size_t size) size *= nmemb; if ((ptr = malloc(size)) == NULL) - errorx2(1, _("unable to allocate memory")); + errorx2(1, NULL); return ptr; } @@ -124,7 +125,7 @@ ecalloc(size_t nmemb, size_t size) size *= nmemb; } if ((ptr = malloc(size)) == NULL) - errorx2(1, _("unable to allocate memory")); + errorx2(1, NULL); memset(ptr, 0, size); return ptr; } @@ -143,7 +144,7 @@ erealloc(void *ptr, size_t size) ptr = ptr ? realloc(ptr, size) : malloc(size); if (ptr == NULL) - errorx2(1, _("unable to allocate memory")); + errorx2(1, NULL); return ptr; } @@ -165,7 +166,7 @@ erealloc3(void *ptr, size_t nmemb, size_t size) size *= nmemb; ptr = ptr ? realloc(ptr, size) : malloc(size); if (ptr == NULL) - errorx2(1, _("unable to allocate memory")); + errorx2(1, NULL); return ptr; } @@ -189,7 +190,7 @@ erecalloc(void *ptr, size_t onmemb, size_t nmemb, size_t msize) size = nmemb * msize; ptr = ptr ? realloc(ptr, size) : malloc(size); if (ptr == NULL) - errorx2(1, _("unable to allocate memory")); + errorx2(1, NULL); if (nmemb > onmemb) { size = (nmemb - onmemb) * msize; memset((char *)ptr + (onmemb * msize), 0, size); @@ -253,7 +254,7 @@ easprintf(char **ret, const char *fmt, ...) va_end(ap); if (len == -1) - errorx2(1, _("unable to allocate memory")); + errorx2(1, strerror(ENOMEM)); return len; } @@ -267,7 +268,7 @@ evasprintf(char **ret, const char *format, va_list args) int len; if ((len = vasprintf(ret, format, args)) == -1) - errorx2(1, _("unable to allocate memory")); + errorx2(1, NULL); return len; } diff --git a/plugins/sample_group/plugin_test.c b/plugins/sample_group/plugin_test.c index 87077a5bc..ffb90a0e4 100644 --- a/plugins/sample_group/plugin_test.c +++ b/plugins/sample_group/plugin_test.c @@ -126,7 +126,7 @@ group_plugin_load(char *plugin_info) if (ac != 0) { argv = malloc(ac * sizeof(char *)); if (argv == NULL) { - fprintf(stderr, "unable to allocate memory\n"); + perror(NULL); return -1; } ac = 0; diff --git a/plugins/sudoers/env.c b/plugins/sudoers/env.c index b28f45eaf..bf974ce07 100644 --- a/plugins/sudoers/env.c +++ b/plugins/sudoers/env.c @@ -367,7 +367,7 @@ sudo_putenv(char *str, bool dupcheck, bool overwrite) if (env.envp[env.env_len] != NULL) errorx(1, _("sudo_putenv: corrupted envp, length mismatch")); #endif - errorx(1, _("unable to allocate memory")); + errorx(1, NULL); } debug_return_int(rval); } diff --git a/plugins/sudoers/toke.c b/plugins/sudoers/toke.c index cc3999f2f..fc345111b 100644 --- a/plugins/sudoers/toke.c +++ b/plugins/sudoers/toke.c @@ -3416,7 +3416,7 @@ switch_dir(struct include_stack *stack, char *dirpath) sudoerserror(errbuf); free(errbuf); } else { - sudoerserror(_("unable to allocate memory")); + sudoerserror(strerror(errno)); } } goto done; @@ -3546,7 +3546,7 @@ _push_include(char *path, bool isdir) istack = (struct include_stack *) realloc(istack, sizeof(*istack) * istacksize); if (istack == NULL) { - sudoerserror(_("unable to allocate memory")); + sudoerserror(strerror(errno)); debug_return_bool(false); } } @@ -3697,7 +3697,7 @@ parse_include(char *base) len += (int)(ep - cp); path = pp = malloc(len + dirlen + 1); if (path == NULL) { - sudoerserror(_("unable to allocate memory")); + sudoerserror(strerror(errno)); debug_return_str(NULL); } if (dirlen) { diff --git a/plugins/sudoers/toke.l b/plugins/sudoers/toke.l index cf4fa8e7d..1d85e13c9 100644 --- a/plugins/sudoers/toke.l +++ b/plugins/sudoers/toke.l @@ -694,7 +694,7 @@ switch_dir(struct include_stack *stack, char *dirpath) sudoerserror(errbuf); free(errbuf); } else { - sudoerserror(_("unable to allocate memory")); + sudoerserror(strerror(errno)); } } goto done; @@ -824,7 +824,7 @@ _push_include(char *path, bool isdir) istack = (struct include_stack *) realloc(istack, sizeof(*istack) * istacksize); if (istack == NULL) { - sudoerserror(_("unable to allocate memory")); + sudoerserror(strerror(errno)); debug_return_bool(false); } } @@ -975,7 +975,7 @@ parse_include(char *base) len += (int)(ep - cp); path = pp = malloc(len + dirlen + 1); if (path == NULL) { - sudoerserror(_("unable to allocate memory")); + sudoerserror(strerror(errno)); debug_return_str(NULL); } if (dirlen) { diff --git a/plugins/sudoers/toke_util.c b/plugins/sudoers/toke_util.c index 8c18cfed0..0417eb047 100644 --- a/plugins/sudoers/toke_util.c +++ b/plugins/sudoers/toke_util.c @@ -48,6 +48,7 @@ # include #endif /* HAVE_MALLOC_H && !STDC_HEADERS */ #include +#include #include "sudoers.h" #include "parse.h" @@ -110,7 +111,7 @@ fill_txt(const char *src, int len, int olen) dst = olen ? realloc(sudoerslval.string, olen + len + 1) : malloc(len + 1); if (dst == NULL) { - sudoerserror(_("unable to allocate memory")); + sudoerserror(strerror(errno)); debug_return_bool(false); } sudoerslval.string = dst; @@ -164,7 +165,7 @@ fill_cmnd(const char *src, int len) dst = sudoerslval.command.cmnd = (char *) malloc(len + 1); if (sudoerslval.command.cmnd == NULL) { - sudoerserror(_("unable to allocate memory")); + sudoerserror(strerror(errno)); debug_return_bool(false); } @@ -204,7 +205,7 @@ fill_args(const char *s, int len, int addspace) (char *) malloc(arg_size); if (p == NULL) { efree(sudoerslval.command.args); - sudoerserror(_("unable to allocate memory")); + sudoerserror(strerror(errno)); debug_return_bool(false); } else sudoerslval.command.args = p; diff --git a/src/exec_common.c b/src/exec_common.c index ff06dabd4..426fba0c0 100644 --- a/src/exec_common.c +++ b/src/exec_common.c @@ -109,7 +109,7 @@ disable_execute(char *const envp[]) preload = fmt_string(RTLD_PRELOAD_VAR, sudo_conf_noexec_path()); # endif if (preload == NULL) - errorx(1, _("unable to allocate memory")); + errorx(1, NULL); nenvp[env_len++] = preload; nenvp[env_len] = NULL; } else { diff --git a/src/parse_args.c b/src/parse_args.c index 1ee85a25b..28da42913 100644 --- a/src/parse_args.c +++ b/src/parse_args.c @@ -427,7 +427,7 @@ parse_args(int argc, char **argv, int *nargc, char ***nargv, char ***settingsp, settings[j] = fmt_string(sudo_settings[i].name, sudo_settings[i].value); if (settings[j] == NULL) - errorx(1, _("unable to allocate memory")); + errorx(1, NULL); j++; } } diff --git a/src/sudo.c b/src/sudo.c index e1ecf6a47..583eb3465 100644 --- a/src/sudo.c +++ b/src/sudo.c @@ -453,7 +453,7 @@ get_user_info(struct user_details *ud) user_info[i] = fmt_string("user", pw->pw_name); if (user_info[i] == NULL) - errorx(1, _("unable to allocate memory")); + errorx(1, NULL); ud->username = user_info[i] + sizeof("user=") - 1; /* Stash user's shell for use with the -s flag; don't pass to plugin. */ @@ -479,14 +479,14 @@ get_user_info(struct user_details *ud) if (getcwd(cwd, sizeof(cwd)) != NULL) { user_info[++i] = fmt_string("cwd", cwd); if (user_info[i] == NULL) - errorx(1, _("unable to allocate memory")); + errorx(1, NULL); ud->cwd = user_info[i] + sizeof("cwd=") - 1; } if ((cp = get_process_ttyname()) != NULL) { user_info[++i] = fmt_string("tty", cp); if (user_info[i] == NULL) - errorx(1, _("unable to allocate memory")); + errorx(1, NULL); ud->tty = user_info[i] + sizeof("tty=") - 1; efree(cp); } @@ -497,7 +497,7 @@ get_user_info(struct user_details *ud) strlcpy(host, "localhost", sizeof(host)); user_info[++i] = fmt_string("host", host); if (user_info[i] == NULL) - errorx(1, _("unable to allocate memory")); + errorx(1, NULL); ud->host = user_info[i] + sizeof("host=") - 1; get_ttysize(&ud->ts_lines, &ud->ts_cols); @@ -756,7 +756,7 @@ command_info_to_details(char * const info[], struct command_details *details) #endif details->pw = getpwuid(details->euid); if (details->pw != NULL && (details->pw = pw_dup(details->pw)) == NULL) - errorx(1, _("unable to allocate memory")); + errorx(1, NULL); #ifdef HAVE_SETAUTHDB aix_restoreauthdb(); #endif