summaryrefslogtreecommitdiffstats
path: root/lib/session.c
diff options
context:
space:
mode:
authorJozsef Kadlecsik <kadlec@blackhole.kfki.hu>2015-10-28 17:13:31 +0100
committerJozsef Kadlecsik <kadlec@blackhole.kfki.hu>2015-10-28 17:13:31 +0100
commit0516924996e6ce0063ec682bc7b1c01db75af304 (patch)
tree40377a0c005d13b81230b81be9ac88e49c5be6bc /lib/session.c
parent68afc6a7767d1af4aa5aae89e8dcfc036015c2f3 (diff)
Handle uint64_t alignment issue in ipset tool
Diffstat (limited to 'lib/session.c')
-rw-r--r--lib/session.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/lib/session.c b/lib/session.c
index 95c253e..24f29f5 100644
--- a/lib/session.c
+++ b/lib/session.c
@@ -636,7 +636,10 @@ attr2data(struct ipset_session *session, struct nlattr *nla[],
D("netorder attr type %u", type);
switch (attr->type) {
case MNL_TYPE_U64: {
- v64 = be64toh(*(const uint64_t *)d);
+ uint64_t tmp;
+ /* Ensure data alignment */
+ memcpy(&tmp, d, sizeof(tmp));
+ v64 = be64toh(tmp);
d = &v64;
break;
}