mirror of
https://github.com/asterisk/asterisk.git
synced 2025-09-02 19:16:15 +00:00
res_crypto: Don't load non-regular files in keys directory
ASTERISK-30046 Change-Id: Ie77e0648f8b0b1c2159fb24662d1989cfd4cc36d
This commit is contained in:
committed by
Friendly Automation
parent
1a18e4dade
commit
792287918e
@@ -270,7 +270,7 @@ static struct ast_key *try_load_key(const char *dir, const char *fname, int ifd,
|
||||
ast_log(LOG_NOTICE, "Key '%s' is not expected size.\n", key->name);
|
||||
}
|
||||
} else if (key->infd != -2) {
|
||||
ast_log(LOG_WARNING, "Key load %s '%s' failed\n",key->ktype == AST_KEY_PUBLIC ? "PUBLIC" : "PRIVATE", key->name);
|
||||
ast_log(LOG_WARNING, "Key load %s '%s' failed\n", key->ktype == AST_KEY_PUBLIC ? "PUBLIC" : "PRIVATE", key->name);
|
||||
if (ofd > -1) {
|
||||
ERR_print_errors_fp(stderr);
|
||||
} else {
|
||||
@@ -507,6 +507,13 @@ static void crypto_load(int ifd, int ofd)
|
||||
/* Load new keys */
|
||||
if ((dir = opendir(ast_config_AST_KEY_DIR))) {
|
||||
while ((ent = readdir(dir))) {
|
||||
if (!strcmp(ent->d_name, ".") || !strcmp(ent->d_name, "..")) {
|
||||
continue;
|
||||
}
|
||||
if (ent->d_type != DT_REG) {
|
||||
ast_log(LOG_WARNING, "Non-regular file '%s' in keys directory\n", ent->d_name);
|
||||
continue;
|
||||
}
|
||||
try_load_key(ast_config_AST_KEY_DIR, ent->d_name, ifd, ofd, ¬e);
|
||||
}
|
||||
closedir(dir);
|
||||
|
Reference in New Issue
Block a user