On 03/05/2019 19:08, Guy Harris wrote: > Should we have a function > > static inline void > get_bytes(netdissect_options *ndo, u_char *dst, const u_char *p, size_t > len) > { > if (!ND_TCHECK_LEN(p, len)) > longjmp(ndo->ndo_truncated, 1); > UNALIGNED_MEMCPY(dst, p, len); > } > > and a macro > > #define GET_BYTES(p, len) get_bytes(ndo, (const u_char *)(p), len) > > (it uses UNALIGNED_MEMCPY() to handle cases where the compiler "helpfully" > optimizes the copy under the assumption that the source is aligned on a > 2-byte or 4-byte boundary, on a platform such as a SPARC-based machine where > misaligned loads/stores cause a trap or, worse, some ARM-based machines where > unaligned access isn't enabled).
Agreed. _______________________________________________ tcpdump-workers mailing list tcpdump-workers@lists.tcpdump.org https://lists.sandelman.ca/mailman/listinfo/tcpdump-workers