• Johan Hovold's avatar
    media: rtl28xxu: fix zero-length control request · 25d5ce3a
    Johan Hovold authored
    The direction of the pipe argument must match the request-type direction
    bit or control requests may fail depending on the host-controller-driver
    implementation.
    
    Control transfers without a data stage are treated as OUT requests by
    the USB stack and should be using usb_sndctrlpipe(). Failing to do so
    will now trigger a warning.
    
    Fix the zero-length i2c-read request used for type detection by
    attempting to read a single byte instead.
    
    Reported-by: syzbot+faf11bbadc5a372564da@syzkaller.appspotmail.com
    Fixes: d0f232e8 ("[media] rtl28xxu: add heuristic to detect chip type")
    Cc: stable@vger.kernel.org      # 4.0
    Cc: Antti Palosaari <crope@iki.fi>
    Signed-off-by: default avatarJohan Hovold <johan@kernel.org>
    Signed-off-by: default avatarHans Verkuil <hverkuil-cisco@xs4all.nl>
    Signed-off-by: default avatarMauro Carvalho Chehab <mchehab+huawei@kernel.org>
    25d5ce3a
rtl28xxu.c 50.9 KB