]> git.ipfire.org Git - thirdparty/rspamd.git/commitdiff
[Fix] Fix compiler warnings in lua_logger and dkim modules
authorVsevolod Stakhov <vsevolod@rspamd.com>
Thu, 16 Oct 2025 07:38:19 +0000 (08:38 +0100)
committerVsevolod Stakhov <vsevolod@rspamd.com>
Thu, 16 Oct 2025 07:38:19 +0000 (08:38 +0100)
Fixed incompatible pointer type warnings in lua_logger.c when converting
strings to integers by using gulong/glong types matching rspamd_strtoul/
rspamd_strtol function signatures.

Fixed enum type mismatch in dkim.c by adding RSPAMD_DKIM_KEY_INVALID to
rspamd_dkim_key_type enum and handling it in the verification switch.

src/libserver/dkim.c
src/libserver/dkim.h
src/lua/lua_logger.c

index acb9d419003cea001cf2ee7282c0281d27f60267..67a6edf4f736d69dd81650d958cc44976e49b779 100644 (file)
@@ -3008,6 +3008,12 @@ rspamd_dkim_check(rspamd_dkim_context_t *ctx,
                nid = NID_sha1;
        }
        switch (key->type) {
+       case RSPAMD_DKIM_KEY_INVALID:
+               /* Invalid key type - should not happen */
+               res->rcode = DKIM_PERM_ERROR;
+               res->fail_reason = "invalid key type";
+               msg_err_dkim("invalid key type for verification");
+               break;
        case RSPAMD_DKIM_KEY_RSA: {
                GError *err = NULL;
 
@@ -3226,7 +3232,7 @@ rspamd_dkim_sign_key_get_type(rspamd_dkim_sign_key_t *key)
        if (key) {
                return key->type;
        }
-       return RSPAMD_DKIM_KEY_UNKNOWN;
+       return RSPAMD_DKIM_KEY_INVALID;
 }
 
 gboolean
index de3ba0ff0bffa286e93e81c9f47d3aea783d9b72..2b4122e7092428097560219d06b0a5255c769e65 100644 (file)
@@ -111,6 +111,7 @@ enum rspamd_sign_type {
 };
 
 enum rspamd_dkim_key_type {
+       RSPAMD_DKIM_KEY_INVALID = -1,
        RSPAMD_DKIM_KEY_RSA = 0,
        RSPAMD_DKIM_KEY_ECDSA,
        RSPAMD_DKIM_KEY_EDDSA
index bdfc218ebc7e32e5016b3767c7f3f6fce844589d..30cd53a2bcb9dfad5ef6be103e531f65ad5c6522 100644 (file)
@@ -345,13 +345,13 @@ lua_logger_out_int(lua_State *L, int pos, char *outbuf, gsize len, gboolean is_u
                gsize slen;
                const char *str = lua_tolstring(L, pos, &slen);
                if (is_unsigned) {
-                       guint64 uval;
+                       gulong uval;
                        if (rspamd_strtoul(str, slen, &uval)) {
                                return rspamd_snprintf(outbuf, len, "%uL", uval);
                        }
                }
                else {
-                       gint64 ival;
+                       glong ival;
                        if (rspamd_strtol(str, slen, &ival)) {
                                return rspamd_snprintf(outbuf, len, "%L", ival);
                        }