diff options
Diffstat (limited to 'src/libserver/dkim.c')
-rw-r--r-- | src/libserver/dkim.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/src/libserver/dkim.c b/src/libserver/dkim.c index c70b0bbc0..4b49d1e6f 100644 --- a/src/libserver/dkim.c +++ b/src/libserver/dkim.c @@ -2736,11 +2736,16 @@ rspamd_dkim_sign_key_maybe_invalidate (rspamd_dkim_sign_key_t *key, if (type == RSPAMD_DKIM_SIGN_KEY_FILE) { gchar fpath[PATH_MAX]; + if (len >= PATH_MAX) { + /* Bad thing */ + return TRUE; + } + rspamd_snprintf (fpath, sizeof (fpath), "%*s", (gint) len, what); if (stat (fpath, &st) == -1) { - /* Prefer to use cached key since it is absent on FS */ - return FALSE; + /* Wrong: do NOT prefer to use cached key since it is absent on FS */ + return TRUE; } if (st.st_mtime > key->mtime) { |