From bee4baf6d7a1055f7e2819209e722c6effc9c1bf Mon Sep 17 00:00:00 2001 From: Florian Weimer Date: Wed, 2 Jan 2019 16:46:12 +0100 Subject: [PATCH] intl: Do not return NULL on asprintf failure in gettext [BZ #24018] Fixes commit 9695dd0c9309712ed8e9c17a7040fe7af347f2dc ("DCIGETTEXT: Use getcwd, asprintf to construct absolute pathname"). (cherry picked from commit 8c1aafc1f34d090a5b41dc527c33e8687f6a1287) --- ChangeLog | 6 ++++++ NEWS | 1 + intl/dcigettext.c | 2 +- 3 files changed, 8 insertions(+), 1 deletion(-) diff --git a/ChangeLog b/ChangeLog index ec7dcc67b27..8de81aa559f 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2019-01-02 Florian Weimer + + [BZ #24018] + * intl/dcigettext.c (DCIGETTEXT): Do not return NULL on asprintf + failure. + 2018-12-31 Florian Weimer [BZ #24027] diff --git a/NEWS b/NEWS index d350d4666a8..865c075c820 100644 --- a/NEWS +++ b/NEWS @@ -28,6 +28,7 @@ The following bugs are resolved with this release: [23822] ia64 static libm.a is missing exp2f, log2f and powf symbols [23927] Linux if_nametoindex() does not close descriptor (CVE-2018-19591) [23972] __old_getdents64 uses wrong d_off value on overflow + [24018] gettext may return NULL [24027] malloc: Integer overflow in realloc Security related changes: diff --git a/intl/dcigettext.c b/intl/dcigettext.c index 2a503699482..25f47c5bd3b 100644 --- a/intl/dcigettext.c +++ b/intl/dcigettext.c @@ -631,7 +631,7 @@ DCIGETTEXT (const char *domainname, const char *msgid1, const char *msgid2, int ret = __asprintf (&xdirname, "%s/%s", cwd, dirname); free (cwd); if (ret < 0) - return NULL; + goto return_untranslated; dirname = xdirname; } #ifndef IN_LIBGLOCALE -- 2.47.2