summaryrefslogtreecommitdiff
path: root/main/rtp_engine.c
diff options
context:
space:
mode:
Diffstat (limited to 'main/rtp_engine.c')
-rw-r--r--main/rtp_engine.c16
1 files changed, 16 insertions, 0 deletions
diff --git a/main/rtp_engine.c b/main/rtp_engine.c
index 32909090f..24e56b49f 100644
--- a/main/rtp_engine.c
+++ b/main/rtp_engine.c
@@ -2118,18 +2118,34 @@ int ast_rtp_dtls_cfg_parse(struct ast_rtp_dtls_cfg *dtls_cfg, const char *name,
}
} else if (!strcasecmp(name, "dtlscertfile")) {
ast_free(dtls_cfg->certfile);
+ if (!ast_file_is_readable(value)) {
+ ast_log(LOG_ERROR, "%s file %s does not exist or is not readable\n", name, value);
+ return -1;
+ }
dtls_cfg->certfile = ast_strdup(value);
} else if (!strcasecmp(name, "dtlsprivatekey")) {
ast_free(dtls_cfg->pvtfile);
+ if (!ast_file_is_readable(value)) {
+ ast_log(LOG_ERROR, "%s file %s does not exist or is not readable\n", name, value);
+ return -1;
+ }
dtls_cfg->pvtfile = ast_strdup(value);
} else if (!strcasecmp(name, "dtlscipher")) {
ast_free(dtls_cfg->cipher);
dtls_cfg->cipher = ast_strdup(value);
} else if (!strcasecmp(name, "dtlscafile")) {
ast_free(dtls_cfg->cafile);
+ if (!ast_file_is_readable(value)) {
+ ast_log(LOG_ERROR, "%s file %s does not exist or is not readable\n", name, value);
+ return -1;
+ }
dtls_cfg->cafile = ast_strdup(value);
} else if (!strcasecmp(name, "dtlscapath") || !strcasecmp(name, "dtlscadir")) {
ast_free(dtls_cfg->capath);
+ if (!ast_file_is_readable(value)) {
+ ast_log(LOG_ERROR, "%s file %s does not exist or is not readable\n", name, value);
+ return -1;
+ }
dtls_cfg->capath = ast_strdup(value);
} else if (!strcasecmp(name, "dtlssetup")) {
if (!strcasecmp(value, "active")) {