diff --git a/server/incoming_spa.c b/server/incoming_spa.c index ad6268ae..f80a76ea 100644 --- a/server/incoming_spa.c +++ b/server/incoming_spa.c @@ -531,8 +531,10 @@ incoming_spa(fko_srv_options_t *opts) /* Add this SPA packet into the replay detection cache */ - if (added_replay_digest == 0) + if (added_replay_digest == 0 + && strncasecmp(opts->config[CONF_ENABLE_DIGEST_PERSISTENCE], "Y", 1) == 0) { + res = add_replay(opts, raw_digest); if (res != SPA_MSG_SUCCESS) { diff --git a/server/replay_cache.c b/server/replay_cache.c index 51e73d3b..3b93f621 100644 --- a/server/replay_cache.c +++ b/server/replay_cache.c @@ -730,6 +730,12 @@ add_replay(fko_srv_options_t *opts, char *digest) return(-1); #else + if(digest == NULL) + { + log_msg(LOG_WARNING, "NULL digest passed into add_replay()"); + return(SPA_MSG_DIGEST_CACHE_ERROR); + } + #if USE_FILE_CACHE return add_replay_file_cache(opts, digest); #else