usb: usbtmc: Fix erroneous get_stb ioctl error returns
authorDave Penkler <dpenkler@gmail.com>
Fri, 2 May 2025 07:09:39 +0000 (09:09 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 2 May 2025 07:28:54 +0000 (09:28 +0200)
commitcac01bd178d6a2a23727f138d647ce1a0e8a73a1
tree9fc1390fed84af22a65500570b85e61b07573c25
parente918d3959b5ae0e793b8f815ce62240e10ba03a4
usb: usbtmc: Fix erroneous get_stb ioctl error returns

wait_event_interruptible_timeout returns a long
The return was being assigned to an int causing an integer overflow when
the remaining jiffies > INT_MAX resulting in random error returns.

Use a long return value and convert to int ioctl return only on error.

When the return value of wait_event_interruptible_timeout was <= INT_MAX
the number of remaining jiffies was returned which has no meaning for the
user. Return 0 on success.

Reported-by: Michael Katzmann <vk2bea@gmail.com>
Fixes: dbf3e7f654c0 ("Implement an ioctl to support the USMTMC-USB488 READ_STATUS_BYTE operation.")
Cc: stable@vger.kernel.org
Signed-off-by: Dave Penkler <dpenkler@gmail.com>
Link: https://lore.kernel.org/r/20250502070941.31819-2-dpenkler@gmail.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/usb/class/usbtmc.c