usb: fix cleanup after failure in hub_configure()
If the hub_configure() fails after setting the hdev->maxchild the hub->ports might be NULL or point to uninitialized kzallocated memory causing NULL pointer dereference in hub_quiesce() during cleanup. Now after such error the hdev->maxchild is set to 0 to avoid cleanup of uninitialized ports. Signed-off-by: Krzysztof Mazur <krzysiek@podlesie.net> Acked-by: Alan Stern <stern@rowland.harvard.edu> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
		
							parent
							
								
									f375fc520d
								
							
						
					
					
						commit
						d0308d4b6b
					
				| @ -1573,6 +1573,7 @@ static int hub_configure(struct usb_hub *hub, | ||||
| 	return 0; | ||||
| 
 | ||||
| fail: | ||||
| 	hdev->maxchild = 0; | ||||
| 	dev_err (hub_dev, "config failed, %s (err %d)\n", | ||||
| 			message, ret); | ||||
| 	/* hub_disconnect() frees urb and descriptor */ | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user