diff --git a/src/cache_wt.c b/src/cache_wt.c index 65a1fc4..9c1b69c 100644 --- a/src/cache_wt.c +++ b/src/cache_wt.c @@ -28,7 +28,7 @@ static void add_wt(struct us_conntrack *u) { int ret; - char __ct[nfct_maxsize()]; + char __ct[nfct_maxsize()] __attribute__((aligned)); struct nf_conntrack *ct = (struct nf_conntrack *)(void*) __ct; ret = nl_exist_conntrack(u->ct); @@ -56,7 +56,7 @@ static void add_wt(struct us_conntrack *u) static void upd_wt(struct us_conntrack *u) { - char __ct[nfct_maxsize()]; + char __ct[nfct_maxsize()] __attribute__((aligned)); struct nf_conntrack *ct = (struct nf_conntrack *)(void*) __ct; memcpy(ct, u->ct, nfct_maxsize()); diff --git a/src/conntrack.c b/src/conntrack.c index 25a3a57..d2e1b47 100644 --- a/src/conntrack.c +++ b/src/conntrack.c @@ -747,7 +747,7 @@ static int update_cb(enum nf_conntrack_msg_type type, { int res; struct nf_conntrack *obj = data; - char __tmp[nfct_maxsize()]; + char __tmp[nfct_maxsize()] __attribute__((aligned)); struct nf_conntrack *tmp = (struct nf_conntrack *) (void *)__tmp; memcpy(tmp, obj, sizeof(__tmp)); @@ -873,14 +873,14 @@ int main(int argc, char *argv[]) unsigned int type = 0, event_mask = 0, l4flags = 0, status = 0; int res = 0; int family = AF_UNSPEC; - char __obj[nfct_maxsize()]; - char __exptuple[nfct_maxsize()]; - char __mask[nfct_maxsize()]; + char __obj[nfct_maxsize()] __attribute__((aligned)); + char __exptuple[nfct_maxsize()] __attribute__((aligned)); + char __mask[nfct_maxsize()] __attribute__((aligned)); struct nf_conntrack *obj = (struct nf_conntrack *)(void*) __obj; struct nf_conntrack *exptuple = (struct nf_conntrack *)(void*) __exptuple; struct nf_conntrack *mask = (struct nf_conntrack *)(void*) __mask; - char __exp[nfexp_maxsize()]; + char __exp[nfexp_maxsize()] __attribute__((aligned)); struct nf_expect *exp = (struct nf_expect *)(void*) __exp; int l3protonum; union ct_address ad; diff --git a/src/sync-mode.c b/src/sync-mode.c index 4b36935..1b6ec48 100644 --- a/src/sync-mode.c +++ b/src/sync-mode.c @@ -38,7 +38,7 @@ static void do_mcast_handler_step(struct nethdr *net, size_t remain) { int query; - char __ct[nfct_maxsize()]; + char __ct[nfct_maxsize()] __attribute__((aligned)); struct nf_conntrack *ct = (struct nf_conntrack *)(void*) __ct; struct us_conntrack *u;