From: Vsevolod Stakhov Date: Tue, 21 Sep 2021 11:27:10 +0000 (+0100) Subject: [Minor] Fix some more issues X-Git-Tag: 3.1~133 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=384e037f52b933fdd3cb84966208f8e658212ffe;p=thirdparty%2Frspamd.git [Minor] Fix some more issues Found by: coverity scan --- diff --git a/src/libserver/http/http_router.c b/src/libserver/http/http_router.c index 960df0ce31..9ff1195ade 100644 --- a/src/libserver/http/http_router.c +++ b/src/libserver/http/http_router.c @@ -199,6 +199,7 @@ rspamd_http_router_try_file (struct rspamd_http_connection_entry *entry, rspamd_http_router_insert_headers (entry->rt, reply_msg); if (!rspamd_http_message_set_body_from_fd (reply_msg, fd)) { + rspamd_http_message_free (reply_msg); close (fd); return FALSE; } diff --git a/src/libserver/logger/logger.c b/src/libserver/logger/logger.c index f65d0fb2ea..07625bb91b 100644 --- a/src/libserver/logger/logger.c +++ b/src/libserver/logger/logger.c @@ -227,16 +227,21 @@ rspamd_log_open_specific (rspamd_mempool_t *pool, const struct rspamd_logger_funcs *funcs = NULL; - switch (cfg->log_type) { - case RSPAMD_LOG_CONSOLE: + if (cfg) { + switch (cfg->log_type) { + case RSPAMD_LOG_CONSOLE: + funcs = &console_log_funcs; + break; + case RSPAMD_LOG_SYSLOG: + funcs = &syslog_log_funcs; + break; + case RSPAMD_LOG_FILE: + funcs = &file_log_funcs; + break; + } + } + else { funcs = &console_log_funcs; - break; - case RSPAMD_LOG_SYSLOG: - funcs = &syslog_log_funcs; - break; - case RSPAMD_LOG_FILE: - funcs = &file_log_funcs; - break; } g_assert (funcs != NULL); diff --git a/src/libserver/milter.c b/src/libserver/milter.c index 301c26a1f7..142f50c92f 100644 --- a/src/libserver/milter.c +++ b/src/libserver/milter.c @@ -846,25 +846,25 @@ rspamd_milter_consume_input (struct rspamd_milter_session *session, case st_len_1: /* The first length byte in big endian order */ priv->parser.datalen = 0; - priv->parser.datalen |= *p << 24; + priv->parser.datalen |= ((gsize)*p) << 24; priv->parser.state = st_len_2; p++; break; case st_len_2: /* The second length byte in big endian order */ - priv->parser.datalen |= *p << 16; + priv->parser.datalen |= ((gsize)*p) << 16; priv->parser.state = st_len_3; p++; break; case st_len_3: /* The third length byte in big endian order */ - priv->parser.datalen |= *p << 8; + priv->parser.datalen |= ((gsize)*p) << 8; priv->parser.state = st_len_4; p++; break; case st_len_4: /* The fourth length byte in big endian order */ - priv->parser.datalen |= *p; + priv->parser.datalen |= ((gsize)*p); priv->parser.state = st_read_cmd; p++; break;