From ac7390ac0884d155d3adc9d0f992413adcaaff87 Mon Sep 17 00:00:00 2001 From: Bruno Haible Date: Sat, 6 Jul 2019 00:43:59 +0200 Subject: [PATCH] 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 c8dd18a7d7..1f5f18b108 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +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. diff --git a/lib/xgetdomainname.c b/lib/xgetdomainname.c index 2f59008d73..65df990e17 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.39.5