summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJeremy Harris <jgh146exb@wizmail.org>2015-11-02 19:03:26 +0000
committerJeremy Harris <jgh146exb@wizmail.org>2015-11-02 19:03:26 +0000
commit98b98887f926be87eabccc7919e57ce625c63c03 (patch)
tree6254b888117c285432ce7e270385f20ee971cad0
parent94431adbd61d7706fe6df3a19bcae043fec950bf (diff)
Avoid misaligned access in cached lookup. Bug 1708
-rw-r--r--doc/doc-txt/ChangeLog4
-rw-r--r--src/src/search.c4
2 files changed, 5 insertions, 3 deletions
diff --git a/doc/doc-txt/ChangeLog b/doc/doc-txt/ChangeLog
index 8780780c0..cea29eeb3 100644
--- a/doc/doc-txt/ChangeLog
+++ b/doc/doc-txt/ChangeLog
@@ -63,9 +63,11 @@ JH/10 Bug 840: fix log_defer_output option of pipe transport
JH/11 Bug 830: use same host for all RCPTS of a message, even under
hosts_randomize. This matters a lot when combined with mua_wrapper.
-JH/12 Bug 1706: percent and underbar characters are no longer excaped by the
+JH/12 Bug 1706: percent and underbar characters are no longer escaped by the
${quote_pgsql:<string>} operator.
+JH/13 Bug 1708: avoid misaligned access in cached lookup.
+
Exim version 4.86
-----------------
diff --git a/src/src/search.c b/src/src/search.c
index cd522dae8..ccad25021 100644
--- a/src/src/search.c
+++ b/src/src/search.c
@@ -540,10 +540,10 @@ else
}
else
{
- t = store_get(sizeof(tree_node) + len + sizeof(expiring_data));
- e = (expiring_data *)((char *)t + sizeof(tree_node) + len);
+ e = store_get(sizeof(expiring_data) + sizeof(tree_node) + len);
e->expiry = do_cache == UINT_MAX ? 0 : time(NULL)+do_cache;
e->ptr = data;
+ t = (tree_node *)(e+1);
memcpy(t->name, keystring, len);
t->data.ptr = e;
tree_insertnode(&c->item_cache, t);