From c368d220762bb20794161480319279a6dfd76ea0 Mon Sep 17 00:00:00 2001 From: Pekka Riikonen Date: Sat, 30 Nov 2002 14:02:41 +0000 Subject: [PATCH] Take only files with .pub suffix in PublicKeyDir. --- CHANGES | 5 +++++ apps/silcd/serverconfig.c | 13 +++++++------ 2 files changed, 12 insertions(+), 6 deletions(-) diff --git a/CHANGES b/CHANGES index 0cc46914..246834d1 100644 --- a/CHANGES +++ b/CHANGES @@ -1,3 +1,8 @@ +Sat Nov 30 19:07:52 EET 2002 Pekka Riikonen + + * Load only files with .pub suffix in PublicKeyDir. Affected + file silcd/serverconfig.c. + Sat Nov 30 14:29:34 CET 2002 Johnny Mnemonic * Extended the SILC_SERVER_LOG_ERROR macro to all available logging diff --git a/apps/silcd/serverconfig.c b/apps/silcd/serverconfig.c index 05a08dcb..d4095874 100644 --- a/apps/silcd/serverconfig.c +++ b/apps/silcd/serverconfig.c @@ -188,22 +188,23 @@ static bool my_parse_publickeydir(const char *dirname, void **auth_data) /* errors are not considered fatal */ while ((get_file = readdir(dp))) { int dirname_len = strlen(dirname); - char buf[1023]; + char buf[1024]; const char *filename = get_file->d_name; struct stat check_file; - if (!strcmp(filename, ".") || !strcmp(filename, "..")) + /* Ignore "." and "..", and take files only with ".pub" suffix. */ + if (!strcmp(filename, ".") || !strcmp(filename, "..") || + !strstr(filename, ".pub")) continue; - snprintf(buf, sizeof(buf) - 2, "%s%s%s", dirname, + memset(buf, 0, sizeof(buf)); + snprintf(buf, sizeof(buf) - 1, "%s%s%s", dirname, (dirname[dirname_len - 1] == '/' ? "" : "/"), filename); - buf[sizeof(buf) - 1] = 0; if (stat(buf, &check_file) < 0) { SILC_SERVER_LOG_ERROR(("Error stating file %s: %s", buf, strerror(errno))); - } - else if (S_ISREG(check_file.st_mode)) { + } else if (S_ISREG(check_file.st_mode)) { my_parse_authdata(SILC_AUTH_PUBLIC_KEY, buf, auth_data, NULL); total++; } -- 2.24.0