Jan Engelhardt wrote: > On Monday 2010-03-01 20:33, Pablo Neira Ayuso wrote: > >>>>>>> +#define ALIGN_SIZE 8 >>>>>> Minor question: why align this to 64 bits? >>>>> I originally used an alignment to 32 bits, but Jan noticed it would >>>>> break if using options/values on 64 bits (and a test confirmed that). I >>>>> took 64 bits as the biggest allowed value for integers. >>>> I would need to look into this in more detail, not sure where the >>>> problem is. I think that you can use something like `struct nlattr' (see >>>> include/linux/netlink.h) and then nla_put() to add attributes in the TLV >>>> format (see lib/nlattr.c). Those are align-safe. I'm using something >>>> similar for conntrackd for the synchronization messages (src/build.c and >>>> src/parse.c). > > If they are align-safe, what's this? :-) Could you tell me where did I say that libnetfilter_conntrack is using those functions that I recommended? > 18:41 ares:/home/jengelh # conntrack -L > Bus error > 18:41 ares:/home/jengelh # file `which conntrack` > /usr/sbin/conntrack: ELF 32-bit MSB executable, SPARC32PLUS, V8+ Required, > version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.4, > not stripped The following patch should fix the problem that you are reporting. Let me know if you have more issues.