From 8362545b4a3dc1b2903b7aa2e40eaf472aec130c Mon Sep 17 00:00:00 2001 From: Karel Zak Date: Wed, 27 Mar 2013 16:08:47 +0100 Subject: [PATCH] lib/xalloc: fix mamory leak in xgethostname() [coverity scan] Signed-off-by: Karel Zak --- include/xalloc.h | 6 ++++-- term-utils/agetty.c | 10 ++++++---- 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/include/xalloc.h b/include/xalloc.h index 7b685e718..1f29621ef 100644 --- a/include/xalloc.h +++ b/include/xalloc.h @@ -83,9 +83,11 @@ static inline char *xgethostname(void) size_t sz = get_hostname_max() + 1; name = xmalloc(sizeof(char) * sz); - if (gethostname(name, sz) != 0) - return NULL; + if (gethostname(name, sz) != 0) { + free(name); + return NULL; + } name[sz - 1] = '\0'; return name; } diff --git a/term-utils/agetty.c b/term-utils/agetty.c index 7ac12f201..f745e6800 100644 --- a/term-utils/agetty.c +++ b/term-utils/agetty.c @@ -1209,9 +1209,10 @@ static char *xgethostname(void) if (!name) log_err(_("failed to allocate memory: %m")); - if (gethostname(name, sz) != 0) + if (gethostname(name, sz) != 0) { + free(name); return NULL; - + } name[sz - 1] = '\0'; return name; } @@ -1226,9 +1227,10 @@ static char *xgetdomainname(void) if (!name) log_err(_("failed to allocate memory: %m")); - if (getdomainname(name, sz) != 0) + if (getdomainname(name, sz) != 0) { + free(name); return NULL; - + } name[sz - 1] = '\0'; return name; #endif