[lkml]   [2007]   [Jul]   [27]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
SubjectRe: [PATCH 1/4] fix endianness bug in l2cap_sock_listen()
Hi Al,

> We loop through psm values, calling __l2cap_get_sock_by_addr(psm, ...)
> until we get NULL; then we set ->psm of our socket to htobs(psm).
> IOW, we find unused psm value and put it into our socket. So far, so
> good, but... __l2cap_get_sock_by_addr() compares its argument with
> ->psm of sockets. IOW, the entire thing works correctly only on
> little-endian. On big-endian we'll get "no socket with such psm"
> on the first iteration, since we won't find a socket with ->psm == 0x1001.
> We will happily conclude that 0x1001 is unused and slap htobs(0x1001)
> (i.e. 0x110) into ->psm of our socket. Of course, the next time around
> the same thing will repeat and we'll just get a fsckload of sockets
> with the same ->psm assigned.
> Fix: pass htobs(psm) to __l2cap_get_sock_by_addr() there. All other
> callers are already passing little-endian values and all places that
> store something in ->psm are storing little-endian.
> Signed-off-by: Al Viro <>

Signed-off-by: Marcel Holtmann <>

Dave, all four patches are good and should go in sooner than later. If
you want me to put them into my tree first, then I can do that or you
can apply them directly. You choice.



To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to
More majordomo info at
Please read the FAQ at

 \ /
  Last update: 2007-07-27 16:41    [W:0.038 / U:10.572 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site