about summary refs log tree commit diff
diff options
context:
space:
mode:
authorRoland McGrath <roland@hack.frob.com>2015-02-25 15:41:31 -0800
committerRoland McGrath <roland@hack.frob.com>2015-02-25 15:41:31 -0800
commitd19df6ac5ace81ca8412f8bf160ae63f44f6f0cf (patch)
treef1c6308464a5c926b8e03e83c6641e693bb645c0
parentd68eba500ca0347364b4c428c51fb607c9278f07 (diff)
downloadglibc-d19df6ac5ace81ca8412f8bf160ae63f44f6f0cf.tar.gz
glibc-d19df6ac5ace81ca8412f8bf160ae63f44f6f0cf.tar.xz
glibc-d19df6ac5ace81ca8412f8bf160ae63f44f6f0cf.zip
Don't crash in iconv setup when getcwd fails.
-rw-r--r--ChangeLog5
-rw-r--r--iconv/gconv_conf.c2
2 files changed, 6 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog
index bf23bc139c..d35a29b926 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2015-02-25  Roland McGrath  <roland@hack.frob.com>
+
+	* iconv/gconv_conf.c (__gconv_get_path): Don't crash if __getcwd
+	returns a null pointer.
+
 2015-02-25  Adhemerval Zanella  <azanella@linux.vnet.ibm.com>
 
 	* sysdeps/powerpc/powerpc64/multiarch/memmove-ppc64.c: Define memcpy
diff --git a/iconv/gconv_conf.c b/iconv/gconv_conf.c
index ee5e6e499c..0ba4739c41 100644
--- a/iconv/gconv_conf.c
+++ b/iconv/gconv_conf.c
@@ -468,7 +468,7 @@ __gconv_get_path (void)
 				":", 1),
 		     default_gconv_path, sizeof (default_gconv_path));
 	  cwd = __getcwd (NULL, 0);
-	  cwdlen = strlen (cwd);
+	  cwdlen = __glibc_unlikely (cwd == NULL) ? 0 : strlen (cwd);
 	}
       assert (default_gconv_path[0] == '/');