summaryrefslogtreecommitdiff
path: root/crypt/crypt-entry.c
diff options
context:
space:
mode:
authorAlexandre Oliva <aoliva@redhat.com>2012-10-10 07:05:10 -0300
committerAlexandre Oliva <aoliva@redhat.com>2012-10-10 07:05:10 -0300
commit4ba74a357376c8f8bf49487f96ae71cf2460c3f3 (patch)
tree785d54466a7b81a674cd69ee59c5e617f2d6101e /crypt/crypt-entry.c
parent0e3b5d6a6859d74a18033d3a55e0ee92340437b3 (diff)
downloadglibc-4ba74a357376c8f8bf49487f96ae71cf2460c3f3.tar.gz
* crypt/crypt-private.h: Include stdbool.h.
(_ufc_setup_salt_r): Return bool. * crypt/crypt-entry.c: Include errno.h. (__crypt_r): Return NULL with EINVAL for bad salt. * crypt/crypt_util.c (bad_for_salt): New. (_ufc_setup_salt_r): Check that salt is long enough and within the specified alphabet. * crypt/badsalttest.c: New file. * crypt/Makefile (tests): Add it. ($(objpfx)badsalttest): New.
Diffstat (limited to 'crypt/crypt-entry.c')
-rw-r--r--crypt/crypt-entry.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/crypt/crypt-entry.c b/crypt/crypt-entry.c
index 91e2c4e97b..9fb22bdac4 100644
--- a/crypt/crypt-entry.c
+++ b/crypt/crypt-entry.c
@@ -27,6 +27,7 @@
#include <stdio.h>
#endif
#include <string.h>
+#include <errno.h>
#ifndef STATIC
#define STATIC static
@@ -108,7 +109,11 @@ __crypt_r (key, salt, data)
/*
* Hack DES tables according to salt
*/
- _ufc_setup_salt_r (salt, data);
+ if (!_ufc_setup_salt_r (salt, data))
+ {
+ __set_errno (EINVAL);
+ return NULL;
+ }
/*
* Setup key schedule