1. 25 Sep, 2020 1 commit
    • M. Vefa Bicakci's avatar
      Revert "usbip: Implement a match function to fix usbip" · d6407613
      M. Vefa Bicakci authored
      This commit reverts commit 7a2f2974 ("usbip: Implement a match
      function to fix usbip").
      
      In summary, commit d5643d22 ("USB: Fix device driver race")
      inadvertently broke usbip functionality, which I resolved in an incorrect
      manner by introducing a match function to usbip, usbip_match(), that
      unconditionally returns true.
      
      However, the usbip_match function, as is, causes usbip to take over
      virtual devices used by syzkaller for USB fuzzing, which is a regression
      reported by Andrey Konovalov.
      
      Furthermore, in conjunction with the fix of another bug, handled by another
      patch titled "usbcore/driver: Fix specific driver selection" in this patch
      set, the usbip_match function causes unexpected USB subsystem behaviour
      when the usbip_host driver is loaded. The unexpected behaviour can be
      qualified as follows:
      - If commit 41160802ab8e ("USB: Simplify USB ID table match") is included
        in the kernel, then all USB devices are bound to the usbip_host
        driver, which appears to the user as if all USB devices were
        disconnected.
      - If the same commit (41160802ab8e) is not in the kernel (as is the case
        with v5.8.10) then all USB devices are re-probed and re-bound to their
        original device drivers, which appears to the user as a disconnection
        and re-connection of USB devices.
      
      Please note that this commit will make usbip non-operational again,
      until yet another patch in this patch set is merged, titled
      "usbcore/driver: Accommodate usbip".
      
      Cc: <stable@vger.kernel.org> # 5.8: 41160802ab8e: USB: Simplify USB ID table match
      Cc: <stable@vger.kernel.org> # 5.8
      Cc: Bastien Nocera <hadess@hadess.net>
      Cc: Valentina Manea <valentina.manea.m@gmail.com>
      Cc: Shuah Khan <shuah@kernel.org>
      Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
      Cc: Alan Stern <stern@rowland.harvard.edu>
      Cc: <syzkaller@googlegroups.com>
      Reported-by: default avatarAndrey Konovalov <andreyknvl@google.com>
      Tested-by: default avatarAndrey Konovalov <andreyknvl@google.com>
      Acked-by: default avatarShuah Khan <skhan@linuxfoundation.org>
      Signed-off-by: default avatarM. Vefa Bicakci <m.v.b@runbox.com>
      Link: https://lore.kernel.org/r/20200922110703.720960-2-m.v.b@runbox.comSigned-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      d6407613
  2. 22 Sep, 2020 1 commit
    • Bryan O'Donoghue's avatar
      USB: gadget: f_ncm: Fix NDP16 datagram validation · 2b405533
      Bryan O'Donoghue authored
      commit 2b74b0a0 ("USB: gadget: f_ncm: add bounds checks to ncm_unwrap_ntb()")
      adds important bounds checking however it unfortunately also introduces  a
      bug with respect to section 3.3.1 of the NCM specification.
      
      wDatagramIndex[1] : "Byte index, in little endian, of the second datagram
      described by this NDP16. If zero, then this marks the end of the sequence
      of datagrams in this NDP16."
      
      wDatagramLength[1]: "Byte length, in little endian, of the second datagram
      described by this NDP16. If zero, then this marks the end of the sequence
      of datagrams in this NDP16."
      
      wDatagramIndex[1] and wDatagramLength[1] respectively then may be zero but
      that does not mean we should throw away the data referenced by
      wDatagramIndex[0] and wDatagramLength[0] as is currently the case.
      
      Breaking the loop on (index2 == 0 || dg_len2 == 0) should come at the end
      as was previously the case and checks for index2 and dg_len2 should be
      removed since zero is valid.
      
      I'm not sure how much testing the above patch received but for me right now
      after enumeration ping doesn't work. Reverting the commit restores ping,
      scp, etc.
      
      The extra validation associated with wDatagramIndex[0] and
      wDatagramLength[0] appears to be valid so, this change removes the incorrect
      restriction on wDatagramIndex[1] and wDatagramLength[1] restoring data
      processing between host and device.
      
      Fixes: 2b74b0a0 ("USB: gadget: f_ncm: add bounds checks to ncm_unwrap_ntb()")
      Cc: Ilja Van Sprundel <ivansprundel@ioactive.com>
      Cc: Brooke Basile <brookebasile@gmail.com>
      Cc: stable <stable@kernel.org>
      Signed-off-by: default avatarBryan O'Donoghue <bryan.odonoghue@linaro.org>
      Link: https://lore.kernel.org/r/20200920170158.1217068-1-bryan.odonoghue@linaro.orgSigned-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      2b405533
  3. 21 Sep, 2020 2 commits
  4. 20 Sep, 2020 20 commits
  5. 19 Sep, 2020 16 commits