diff options
author | Alexandre Oliva <aoliva@redhat.com> | 2012-10-10 07:05:10 -0300 |
---|---|---|
committer | Alexandre Oliva <aoliva@redhat.com> | 2012-10-10 07:05:10 -0300 |
commit | 4ba74a357376c8f8bf49487f96ae71cf2460c3f3 (patch) | |
tree | 785d54466a7b81a674cd69ee59c5e617f2d6101e /crypt/crypt-entry.c | |
parent | 0e3b5d6a6859d74a18033d3a55e0ee92340437b3 (diff) | |
download | glibc-4ba74a357376c8f8bf49487f96ae71cf2460c3f3.tar.gz glibc-4ba74a357376c8f8bf49487f96ae71cf2460c3f3.tar.xz glibc-4ba74a357376c8f8bf49487f96ae71cf2460c3f3.zip |
* 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.c | 7 |
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 |