>From ac7390ac0884d155d3adc9d0f992413adcaaff87 Mon Sep 17 00:00:00 2001 From: Bruno Haible Date: Sat, 6 Jul 2019 00:43:59 +0200 Subject: [PATCH 4/5] xgetdomainname: Don't return an excessive memory allocation. * lib/xgetdomainname.c (xgetdomainname): Shrink the domainname buffer before returning it. --- ChangeLog | 6 ++++++ lib/xgetdomainname.c | 11 +++++++++++ 2 files changed, 17 insertions(+) diff --git a/ChangeLog b/ChangeLog index c8dd18a..1f5f18b 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,11 @@ 2019-07-05 Bruno Haible + xgetdomainname: Don't return an excessive memory allocation. + * lib/xgetdomainname.c (xgetdomainname): Shrink the domainname buffer + before returning it. + +2019-07-05 Bruno Haible + xgethostname: Don't return an excessive memory allocation. * lib/xgethostname.c (xgethostname): Shrink the hostname buffer before returning it. diff --git a/lib/xgetdomainname.c b/lib/xgetdomainname.c index 2f59008..65df990 100644 --- a/lib/xgetdomainname.c +++ b/lib/xgetdomainname.c @@ -73,5 +73,16 @@ xgetdomainname (void) domainname = xrealloc (domainname, size); } + /* Shrink DOMAINNAME before returning it. */ + { + size_t actual_size = strlen (domainname) + 1; + if (actual_size < size) + { + char *shrinked_domainname = realloc (domainname, actual_size); + if (shrinked_domainname != NULL) + domainname = shrinked_domainname; + } + } + return domainname; } -- 2.7.4