Re: [tcpdump-workers] [tcpdump] Keep win32/prj/GNUmakefile ?

2019-05-03 Thread Francois-Xavier Le Bail
On 16/04/2019 17:14, Francois-Xavier Le Bail wrote:

> 39 printers are missing in win32/prj/GNUmakefile. Someone use it ? keep it ?

If no one uses it, we will delete it.
___
tcpdump-workers mailing list
tcpdump-workers@lists.tcpdump.org
https://lists.sandelman.ca/mailman/listinfo/tcpdump-workers


[tcpdump-workers] GET_BYTES() macro, doing a bounds check and a memcpy()?

2019-05-03 Thread Guy Harris
Commit e150c713a2ea333e9ab173e062b447dd65c9a4ee added some ND_TCHECK_LEN() 
calls before doing a memcpy.

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).
___
tcpdump-workers mailing list
tcpdump-workers@lists.tcpdump.org
https://lists.sandelman.ca/mailman/listinfo/tcpdump-workers


Re: [tcpdump-workers] GET_BYTES() macro, doing a bounds check and a memcpy()?

2019-05-03 Thread Francois-Xavier Le Bail
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