lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <20080710111357.GR20815@postel.suug.ch>
Date:	Thu, 10 Jul 2008 13:13:57 +0200
From:	Thomas Graf <tgraf@...g.ch>
To:	Harvey Harrison <harvey.harrison@...il.com>
Cc:	David Miller <davem@...emloft.net>, netdev@...r.kernel.org
Subject: Re: [PATCH] net: em_cmp.c use unaligned access helpers

* Harvey Harrison <harvey.harrison@...il.com> 2008-07-04 19:10
> On Mon, 2008-06-30 at 01:26 +0200, Thomas Graf wrote:
> > * Harvey Harrison <harvey.harrison@...il.com> 2008-06-29 11:01
> > > OK, but be16/32_to_cpu is a no-op on be-arches, so there is a bug here on
> > > big-endian machines as they won't switch it back, your simplified patch
> > > is actually a bugfix in that case.
> > 
> > I noticed that my change wouldn't be correct. The point is to allow
> > userspace to convert the filter values to big endian once, supply them
> > to the kernel and compare big endian values directly. The be16/32_to_cpu
> > convertion is available to support greater-than/lesser-than on little
> > endian architectures.
> 
> Thomas, maybe I'm just being slow, put if it's always a be-value, why
> not the following:
> 
> From: Harvey Harrison <harvey.harrison@...il.com>
> Subject: [PATCH] net: em_cmp.c use unaligned access helper
> 
> ptr pointers to a big endian value, instead of constructing a be
> value and conditionally byteswapping on little-endian arches, use
> the unaligned to access helpers return a cpu-endian value.

em_cmp is based on the u32 classifier which compares everything in
be, it is faster than swapping every value but only works for eq/ne
comparisons. Some people have just gotten used to work with be
when filtering on addresses and port numbers.

em_cmp additionally supports gt/lt operations which only work in
host byte order, therefore the flag TCP_EM_CMP_TRANS was added to
trigger this.

Enforcing host byte order in all cases would probably be simpler
but it can't be changed now as it would break scripts.
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ