From: Andre Noll Date: Sat, 9 Feb 2008 18:34:53 +0000 (+0100) Subject: populate_user_list(): Do not abort if the rsa key of a user is unavailable. X-Git-Tag: v0.3.1~32 X-Git-Url: http://git.tuebingen.mpg.de/?p=paraslash.git;a=commitdiff_plain;h=171459022777233fa84ed95606039b941367dc62 populate_user_list(): Do not abort if the rsa key of a user is unavailable. Skip this line of the user list file instead. --- 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"))