From 04d42662c78823fbb2e71c7a481c86293a031c9a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Ekl=C3=B6f?= Date: Wed, 23 Jun 2021 14:30:02 +0200 Subject: [PATCH] =?UTF-8?q?server:=20avoid=20=E2=80=9Cmember=20access=20wi?= =?UTF-8?q?thin=20misaligned=20address=E2=80=9D=20ASAN=20warning?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- server.c | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/server.c b/server.c index 36bb0ddc..b8ae5685 100644 --- a/server.c +++ b/server.c @@ -253,13 +253,13 @@ fdm_client(struct fdm *fdm, int fd, int events, void *data) /* Overrides */ for (uint16_t i = 0; i < cdata.override_count; i++) { - const struct client_string *arg = (const struct client_string *)p; - CHECK_BUF(sizeof(*arg)); - p += sizeof(*arg); + struct client_string arg; + CHECK_BUF(sizeof(arg)); + memcpy(&arg, p, sizeof(arg)); p += sizeof(arg); - CHECK_BUF_AND_NULL(arg->len); + CHECK_BUF_AND_NULL(arg.len); const char *str = (const char *)p; - p += arg->len; + p += arg.len; tll_push_back(overrides, xstrdup(str)); } @@ -269,8 +269,7 @@ fdm_client(struct fdm *fdm, int fd, int events, void *data) for (uint16_t i = 0; i < cdata.argc; i++) { struct client_string arg; CHECK_BUF(sizeof(arg)); - memcpy(&arg, p, sizeof(arg)); - p += sizeof(arg); + memcpy(&arg, p, sizeof(arg)); p += sizeof(arg); CHECK_BUF_AND_NULL(arg.len); argv[i] = (char *)p; p += arg.len;