diff options
Diffstat (limited to 'nslcd/hackers_parse.c')
-rw-r--r-- | nslcd/hackers_parse.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/nslcd/hackers_parse.c b/nslcd/hackers_parse.c index 7d63995..2a98fc1 100644 --- a/nslcd/hackers_parse.c +++ b/nslcd/hackers_parse.c @@ -126,7 +126,8 @@ load_user_password(struct passwd *user) { ssize_t line_len; size_t line_cap = 0; - asprintf(&filename, "%s/.password", user->pw_dir); + if (asprintf(&filename, "%s/.password", user->pw_dir) < 0) + goto nopassword; if ((file = fopen(filename, "r")) == NULL) goto nopassword; // TODO: check permissions on 'file' @@ -175,7 +176,8 @@ load_user_yaml(const char *filename, struct passwd *user) { yaml_node_t *val = NODE(pair->value); if (strcmp("username", STR_VALUE(key))==0) { user->pw_name = strdup(STR_VALUE(val)); - asprintf(&(user->pw_dir), "/home/%s", user->pw_name); + if (asprintf(&(user->pw_dir), "/home/%s", user->pw_name) < 0) + goto error; flags |= PW_NAME | PW_DIR; } if (strcmp("fullname", STR_VALUE(key))==0) { |