From 171459022777233fa84ed95606039b941367dc62 Mon Sep 17 00:00:00 2001 From: Andre Noll Date: Sat, 9 Feb 2008 19:34:53 +0100 Subject: [PATCH] populate_user_list(): Do not abort if the rsa key of a user is unavailable. Skip this line of the user list file instead. --- user_list.c | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/user_list.c b/user_list.c index 5652774e..eebdfd72 100644 --- a/user_list.c +++ b/user_list.c @@ -37,6 +37,7 @@ static void populate_user_list(char *user_list_file) /* keyword, name, key, perms */ char w[255], n[255], k[255], p[255], tmp[4][255]; struct user *u; + RSA *rsa; ret = para_fgets(line, MAXLINE, file_ptr); if (ret <= 0) @@ -45,16 +46,20 @@ static void populate_user_list(char *user_list_file) continue; if (strcmp(w, "user")) continue; - PARA_DEBUG_LOG("found entry for %s\n", n); + PARA_DEBUG_LOG("found entry for user %s\n", n); + ret = get_rsa_key(k, &rsa, LOAD_PUBLIC_KEY); + if (ret < 0) { + PARA_NOTICE_LOG("skipping entry for user %s: %s\n", n, + para_strerror(-ret)); + continue; + } u = para_malloc(sizeof(*u)); u->name = para_strdup(n); - ret = get_rsa_key(k, &u->rsa, LOAD_PUBLIC_KEY); - if (ret < 0) - break; + u->rsa = rsa; + u->perms = 0; num = sscanf(p, "%200[A-Z_],%200[A-Z_],%200[A-Z_],%200[A-Z_]", tmp[0], tmp[1], tmp[2], tmp[3]); PARA_DEBUG_LOG("found %i perm entries\n", num); - u->perms = 0; while (num > 0) { num--; if (!strcmp(tmp[num], "VSS_READ")) -- 2.39.2