[git commit] libbb: don't die if crypt() returns NULL

Denys Vlasenko vda.linux at googlemail.com
Sun Feb 9 13:38:03 UTC 2014


commit: http://git.busybox.net/busybox/commit/?id=8ed96726603a59969b99e4ea30dbd9b06955084b
branch: http://git.busybox.net/busybox/commit/?id=refs/heads/master

Signed-off-by: Denys Vlasenko <vda.linux at googlemail.com>
---
 libbb/pw_encrypt.c |    9 ++++++++-
 1 files changed, 8 insertions(+), 1 deletions(-)

diff --git a/libbb/pw_encrypt.c b/libbb/pw_encrypt.c
index 39ffa08..bfc7030 100644
--- a/libbb/pw_encrypt.c
+++ b/libbb/pw_encrypt.c
@@ -142,7 +142,14 @@ char* FAST_FUNC pw_encrypt(const char *clear, const char *salt, int cleanup)
 
 char* FAST_FUNC pw_encrypt(const char *clear, const char *salt, int cleanup)
 {
-	return xstrdup(crypt(clear, salt));
+	char *s;
+
+	s = crypt(clear, salt);
+	/*
+	 * glibc used to return "" on malformed salts (for example, ""),
+	 * but since 2.17 it returns NULL.
+	 */
+	return xstrdup(s ? s : "");
 }
 
 #endif


More information about the busybox-cvs mailing list