lsusb: fix undefined behavior in convert_le_u32() signed shift buf[3] is promoted from unsigned char to int (signed) before the left shift. When buf[3] >= 128, shifting left by 24 produces a value that exceeds INT_MAX, which is undefined behavior per C99/C11 6.5.7p4. While this works on all mainstream compilers, sanitizers flag it and optimizing compilers are permitted to exploit UB in surprising ways. Cast buf[3] to unsigned int before shifting to ensure defined behavior. Assisted-by: gkh_clanker_t1000 Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This is a collection of USB tools for use on Linux and BSD systems to query what type of USB devices are connected to the system. This is to be run on a USB host (i.e. a machine you plug USB devices into), not on a USB device (i.e. a device you plug into a USB host.)
Note, usbutils depends on libusb and libudev, be sure that libraries are properly installed first.
To work with the “raw” repo, after cloning it just do:
./autogen.sh
which will build everything and place the binaries into the build/ subdirectory.
usbutils uses meson to build, so if you wish to just build by hand you can do:
meson setup build cd build/ meson compile
The source for usbutils can be found in many places, depending on the git hosting site you prefer. Here are the primary locations, in order of preference by the maintainer:
https://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usbutils.git/ https://git.sr.ht/~gregkh/usbutils https://github.com/gregkh/usbutils
If you have patches or suggestions, you can submit them either via email to the maintainer or to the linux-usb mailing list or via a pull request.
Please note that commits must include a Signed-off-by trailer, indicating that you comply with the Developer Certificate of Origin v1.1.
In addition, when adding new files or contributing to existing ones, ensure that the SPDX tags SPDX-FileCopyrightText and SPDX-License-Identifier are available and are kept up-to date. You can learn more and do that via reuse-tool.