From: Vsevolod Stakhov Date: Mon, 21 Jan 2019 13:04:48 +0000 (+0000) Subject: [Minor] Do not serve absent dkim private keys from LRU cache X-Git-Tag: 1.9.0~285 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=45df2c78a87700a7501fb889d5c2791b0d354348;p=thirdparty%2Frspamd.git [Minor] Do not serve absent dkim private keys from LRU cache --- diff --git a/src/libserver/dkim.c b/src/libserver/dkim.c index c70b0bbc0e..4b49d1e6f0 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) {