
Hi Suneel,
On 10 August 2017 at 23:53, Suneel Garapati suneelglinux@gmail.com wrote:
usb tree and info commands may cause crash otherwise
Signed-off-by: Suneel Garapati suneelglinux@gmail.com
cmd/usb.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-)
Thank you for the patch - it certainly looks like a bug. Can you please expand the commit message a little? E.g. you have UCLASS_USB_EMUL below.
diff --git a/cmd/usb.c b/cmd/usb.c index 992d414..81e1a7b 100644 --- a/cmd/usb.c +++ b/cmd/usb.c @@ -415,7 +415,8 @@ static void usb_show_tree_graph(struct usb_device *dev, char *pre) udev = dev_get_parent_priv(child);
/* Ignore emulators, we only want real devices */
if (device_get_uclass_id(child) != UCLASS_USB_EMUL) {
if (device_get_uclass_id(child) !=
(UCLASS_USB_EMUL | UCLASS_BLK)) {
This seems odd to me. Do you mean to check that the child uclass is neither USB_EMUL nor BLK?
Would it be possible to check that the parent is UCLASS_USB? That seems like a better condition to determine whether the child has USB parent data.
usb_show_tree_graph(udev, pre); pre[index] = 0; }
@@ -605,7 +606,8 @@ static void usb_show_info(struct usb_device *udev) for (device_find_first_child(udev->dev, &child); child; device_find_next_child(&child)) {
if (device_active(child)) {
if (device_active(child) &&
(device_get_uclass_id(child) != UCLASS_BLK)) { udev = dev_get_parent_priv(child); usb_show_info(udev); }
-- 2.7.4
Regards, Simon