]> git.ipfire.org Git - thirdparty/rspamd.git/commitdiff
[Minor] re_cache: include byte length in selector debug log
authorVsevolod Stakhov <vsevolod@rspamd.com>
Fri, 8 May 2026 07:16:02 +0000 (08:16 +0100)
committerVsevolod Stakhov <vsevolod@rspamd.com>
Fri, 8 May 2026 07:16:02 +0000 (08:16 +0100)
Helps diagnose end-anchored regex misses where the selector buffer
contains the expected substring but ends with something else.

src/libserver/re_cache.c

index f91cc53179f5a4cc3c6c52a9b4904f1cbee888ac..9c8d1a0e88ab627bd874dd6786ee4ec0fc14f6d9 100644 (file)
@@ -1237,7 +1237,8 @@ rspamd_re_cache_process_selector(struct rspamd_task *task,
 
 
                        if (txt) {
-                               msg_debug_re_cache("re selector %s returned 1 element", name);
+                               msg_debug_re_cache("re selector %s returned 1 element of %z bytes",
+                                                                  name, (size_t) txt->len);
                                sel_data = txt->start;
                                slen = txt->len;
                                *n = 1;
@@ -1254,8 +1255,7 @@ rspamd_re_cache_process_selector(struct rspamd_task *task,
                }
                else {
                        *n = rspamd_lua_table_size(L, -1);
-
-                       msg_debug_re_cache("re selector %s returned %d elements", name, *n);
+                       gsize total_bytes = 0;
 
                        if (*n > 0) {
                                *svec = g_malloc(sizeof(unsigned char *) * (*n));
@@ -1280,10 +1280,14 @@ rspamd_re_cache_process_selector(struct rspamd_task *task,
                                        }
 
                                        (*lenvec)[i] = slen;
+                                       total_bytes += slen;
                                        lua_pop(L, 1);
                                }
                        }
 
+                       msg_debug_re_cache("re selector %s returned %d elements, %z bytes total",
+                                                          name, *n, total_bytes);
+
                        /* Empty table is also a valid result */
                        result = TRUE;
                }