about summary refs log tree commit diff
diff options
context:
space:
mode:
authorFlorian Weimer <fweimer@redhat.com>2019-01-02 16:46:12 +0100
committerFlorian Weimer <fweimer@redhat.com>2019-01-02 20:01:05 +0100
commita5bd0ba1926ecb6f6b4693921c60cdfca82e5c91 (patch)
tree2dd78b146820053fd90454f9dcb861f5bcffbbc7
parent94417f6c26d6e6a2f0728b8e2cdacfb939689bce (diff)
downloadglibc-a5bd0ba1926ecb6f6b4693921c60cdfca82e5c91.tar.gz
glibc-a5bd0ba1926ecb6f6b4693921c60cdfca82e5c91.tar.xz
glibc-a5bd0ba1926ecb6f6b4693921c60cdfca82e5c91.zip
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)
-rw-r--r--ChangeLog6
-rw-r--r--NEWS1
-rw-r--r--intl/dcigettext.c2
3 files changed, 8 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog
index b5727c7585..4b18e27288 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2019-01-02  Florian Weimer  <fweimer@redhat.com>
+
+	[BZ #24018]
+	* intl/dcigettext.c (DCIGETTEXT): Do not return NULL on asprintf
+	failure.
+
 2018-12-31  Florian Weimer  <fw@deneb.enyo.de>
 
 	[BZ #24027]
diff --git a/NEWS b/NEWS
index ef857b6e6c..49895f81bd 100644
--- a/NEWS
+++ b/NEWS
@@ -163,6 +163,7 @@ The following bugs are resolved with this release:
   [23579] libc: Errors misreported in preadv2
   [23709] Fix CPU string flags for Haswell-type CPUs
   [23927] Linux if_nametoindex() does not close descriptor (CVE-2018-19591)
+  [24018] gettext may return NULL
   [24027] malloc: Integer overflow in realloc
 
 Version 2.26
diff --git a/intl/dcigettext.c b/intl/dcigettext.c
index f63b34b0f5..cfcdd304b4 100644
--- a/intl/dcigettext.c
+++ b/intl/dcigettext.c
@@ -635,7 +635,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