]> source.dussan.org Git - rspamd.git/commitdiff
[Fix] Make stat tokens allocation consistent
authorVsevolod Stakhov <vsevolod@rspamd.com>
Tue, 13 Feb 2024 15:04:24 +0000 (15:04 +0000)
committerVsevolod Stakhov <vsevolod@rspamd.com>
Tue, 13 Feb 2024 15:04:24 +0000 (15:04 +0000)
src/libstat/stat_api.h
src/libstat/tokenizers/osb.c

index 1badb2001cd0e41cc8b2c917a65fea70f45ef350..798d0b4819b81168243f0942643eb0e2773f385f 100644 (file)
@@ -1,11 +1,11 @@
-/*-
- * Copyright 2016 Vsevolod Stakhov
+/*
+ * Copyright 2024 Vsevolod Stakhov
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
  *
- *   http://www.apache.org/licenses/LICENSE-2.0
+ *    http://www.apache.org/licenses/LICENSE-2.0
  *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
@@ -53,13 +53,14 @@ typedef struct rspamd_stat_token_s {
        guint flags;
 } rspamd_stat_token_t;
 
+#define RSPAMD_TOKEN_VALUE_TYPE float
 typedef struct token_node_s {
        guint64 data;
        guint window_idx;
        guint flags;
        rspamd_stat_token_t *t1;
        rspamd_stat_token_t *t2;
-       float values[];
+       RSPAMD_TOKEN_VALUE_TYPE values[0];
 } rspamd_token_t;
 
 struct rspamd_stat_ctx;
index d871c7a4e01c5adef6fe1f28c47ba4f454a138af..e96748a93783c0d2a3c2c26b15ca5b67ca6c8498 100644 (file)
@@ -1,11 +1,11 @@
-/*-
- * Copyright 2016 Vsevolod Stakhov
+/*
+ * Copyright 2024 Vsevolod Stakhov
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
  *
- *   http://www.apache.org/licenses/LICENSE-2.0
+ *    http://www.apache.org/licenses/LICENSE-2.0
  *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
@@ -302,9 +302,8 @@ gint rspamd_tokenizer_osb(struct rspamd_stat_ctx *ctx,
                hashpipe[i].h = 0xfe;
                hashpipe[i].t = NULL;
        }
-
        token_size = sizeof(rspamd_token_t) +
-                                sizeof(gdouble) * ctx->statfiles->len;
+                                sizeof(RSPAMD_TOKEN_VALUE_TYPE) * ctx->statfiles->len;
        g_assert(token_size > 0);
 
        for (w = 0; w < words->len; w++) {