diff options
author | Pallavi Jha <pallavikumarijha@gmail.com> | 2013-11-16 16:23:01 +0530 |
---|---|---|
committer | Jakub Hrozek <jhrozek@redhat.com> | 2013-12-09 22:29:19 +0100 |
commit | 439f664bfb0cbed7e85ebd68647deed7414598d4 (patch) | |
tree | 0e936d2a12422f759f1fd787840dac67214f5aa3 /src/util | |
parent | da5792999440a1294667c91cb520ee5e930ea917 (diff) | |
download | sssd-439f664bfb0cbed7e85ebd68647deed7414598d4.tar.gz sssd-439f664bfb0cbed7e85ebd68647deed7414598d4.tar.xz sssd-439f664bfb0cbed7e85ebd68647deed7414598d4.zip |
added null checks to authtok module
Diffstat (limited to 'src/util')
-rw-r--r-- | src/util/authtok.c | 20 |
1 files changed, 19 insertions, 1 deletions
diff --git a/src/util/authtok.c b/src/util/authtok.c index 83e6a1c94..73a4ccf1a 100644 --- a/src/util/authtok.c +++ b/src/util/authtok.c @@ -32,6 +32,9 @@ enum sss_authtok_type sss_authtok_get_type(struct sss_auth_token *tok) size_t sss_authtok_get_size(struct sss_auth_token *tok) { + if (!tok) { + return 0; + } switch (tok->type) { case SSS_AUTHTOK_TYPE_PASSWORD: case SSS_AUTHTOK_TYPE_CCFILE: @@ -45,12 +48,18 @@ size_t sss_authtok_get_size(struct sss_auth_token *tok) uint8_t *sss_authtok_get_data(struct sss_auth_token *tok) { + if (!tok) { + return NULL; + } return tok->data; } errno_t sss_authtok_get_password(struct sss_auth_token *tok, const char **pwd, size_t *len) { + if (!tok) { + return EFAULT; + } switch (tok->type) { case SSS_AUTHTOK_TYPE_EMPTY: return ENOENT; @@ -70,6 +79,9 @@ errno_t sss_authtok_get_password(struct sss_auth_token *tok, errno_t sss_authtok_get_ccfile(struct sss_auth_token *tok, const char **ccfile, size_t *len) { + if (!tok) { + return EINVAL; + } switch (tok->type) { case SSS_AUTHTOK_TYPE_EMPTY: return ENOENT; @@ -121,6 +133,9 @@ static errno_t sss_authtok_set_string(struct sss_auth_token *tok, void sss_authtok_set_empty(struct sss_auth_token *tok) { + if (!tok) { + return; + } switch (tok->type) { case SSS_AUTHTOK_TYPE_EMPTY: return; @@ -174,6 +189,9 @@ errno_t sss_authtok_set(struct sss_auth_token *tok, errno_t sss_authtok_copy(struct sss_auth_token *src, struct sss_auth_token *dst) { + if (!src || !dst) { + return EINVAL; + } sss_authtok_set_empty(dst); if (src->type == SSS_AUTHTOK_TYPE_EMPTY) { @@ -205,7 +223,7 @@ struct sss_auth_token *sss_authtok_new(TALLOC_CTX *mem_ctx) void sss_authtok_wipe_password(struct sss_auth_token *tok) { - if (tok->type != SSS_AUTHTOK_TYPE_PASSWORD) { + if (!tok || tok->type != SSS_AUTHTOK_TYPE_PASSWORD) { return; } |