1. 18 Sep, 2015 11 commits
  2. 03 Jun, 2015 3 commits
    • Willy Tarreau's avatar
      Linux 2.6.32.67 · 00b90e79
      Willy Tarreau authored
      00b90e79
    • Junling Zheng's avatar
      net: socket: Fix the wrong returns for recvmsg and sendmsg · a8226a63
      Junling Zheng authored
      Based on 08adb7da upstream.
      
      We found that after v3.10.73, recvmsg might return -EFAULT while -EINVAL
      was expected.
      
      We tested it through the recvmsg01 testcase come from LTP testsuit. It set
      msg->msg_namelen to -1 and the recvmsg syscall returned errno 14, which is
      unexpected (errno 22 is expected):
      
      recvmsg01    4  TFAIL  :  invalid socket length ; returned -1 (expected -1),
      errno 14 (expected 22)
      
      Linux mainline has no this bug for commit 08adb7da fixes it accidentally.
      However, it is too large and complex to be backported to LTS 3.10.
      
      Commit 281c9c36 (net: compat: Update get_compat_msghdr() to match
      copy_msghdr_from_user() behaviour) made get_compat_msghdr() return
      error if msg_sys->msg_namelen was negative, which changed the behaviors
      of recvmsg and sendmsg syscall in a lib32 system:
      
      Before commit 281c9c36, get_compat_msghdr() wouldn't fail and it would
      return -EINVAL in move_addr_to_user() or somewhere if msg_sys->msg_namelen
      was invalid and then syscall returned -EINVAL, which is correct.
      
      And now, when msg_sys->msg_namelen is negative, get_compat_msghdr() will
      fail and wants to return -EINVAL, however, the outer syscall will return
      -EFAULT directly, which is unexpected.
      
      This patch gets the return value of get_compat_msghdr() as well as
      copy_msghdr_from_user(), then returns this expected value if
      get_compat_msghdr() fails.
      
      Fixes: 281c9c36 (net: compat: Update get_compat_msghdr() to match copy_msghdr_from_user() behaviour)
      Signed-off-by: default avatarJunling Zheng <zhengjunling@huawei.com>
      Signed-off-by: default avatarHanbing Xu <xuhanbing@huawei.com>
      Cc: Li Zefan <lizefan@huawei.com>
      Cc: Al Viro <viro@zeniv.linux.org.uk>
      Cc: David Miller <davem@davemloft.net>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      Signed-off-by: default avatarWilly Tarreau <w@1wt.eu>
      a8226a63
    • Willy Tarreau's avatar
      net: fix incorrect backport of tcp_send_fin in 2.6.32.66 · cb162b71
      Willy Tarreau authored
      Eric forwarded this bug report happening since 2.6.32.66, found that the
      backport of commit 845704a5 ("tcp: avoid looping in tcp_send_fin()") was
      incorrect and proposed this patch to fix it. The bug was also reported by
      starlight.2015q2@binnacle.cx who confirmed the fix.
      
      > Date: Fri, 29 May 2015 09:12:45 +0000
      > From: "bugzilla-daemon@bugzilla.kernel.org" <bugzilla-daemon@bugzilla.kernel.org>
      > To: "shemminger@linux-foundation.org" <shemminger@linux-foundation.org>
      > Subject: [Bug 99161] New: 2.6.32.66 PPC Oops in tcp_send_fin
      >
      >
      > https://bugzilla.kernel.org/show_bug.cgi?id=99161
      >
      >             Bug ID: 99161
      >            Summary: 2.6.32.66 PPC Oops in tcp_send_fin
      >            Product: Networking
      >            Version: 2.5
      >     Kernel Version: 2.6.32.66
      >           Hardware: PPC-32
      >                 OS: Linux
      >               Tree: Mainline
      >             Status: NEW
      >           Severity: normal
      >           Priority: P1
      >          Component: IPV4
      >           Assignee: shemminger@linux-foundation.org
      >           Reporter: varenet@parisc-linux.org
      >         Regression: No
      >
      > I just updated my trusty old PPC box to longterm 2.6.32.66 (was running .65
      > before that with zero issue) and it started spewing oopses at me like hell
      > broke loose. This machine is primarily used as a DNS and MX (albeit under low
      > pressure).
      (...)
      
      Cc: Eric Dumazet <edumazet@google.com>
      Signed-off-by: default avatarWilly Tarreau <w@1wt.eu>
      cb162b71
  3. 24 May, 2015 26 commits