update: check class->hport validity

This commit is contained in:
sakumisu
2024-06-23 14:16:57 +08:00
parent 69fe1598ed
commit 755d067650
15 changed files with 301 additions and 51 deletions

View File

@@ -55,9 +55,14 @@ static int usbh_asix_read_cmd(struct usbh_asix *asix_class,
void *data,
uint16_t size)
{
struct usb_setup_packet *setup = asix_class->hport->setup;
struct usb_setup_packet *setup;
int ret;
if (!asix_class || !asix_class->hport) {
return -USB_ERR_INVAL;
}
setup = asix_class->hport->setup;
setup->bmRequestType = USB_REQUEST_DIR_IN | USB_REQUEST_VENDOR | USB_REQUEST_RECIPIENT_DEVICE;
setup->bRequest = cmd;
setup->wValue = value;
@@ -80,7 +85,12 @@ static int usbh_asix_write_cmd(struct usbh_asix *asix_class,
void *data,
uint16_t size)
{
struct usb_setup_packet *setup = asix_class->hport->setup;
struct usb_setup_packet *setup;
if (!asix_class || !asix_class->hport) {
return -USB_ERR_INVAL;
}
setup = asix_class->hport->setup;
setup->bmRequestType = USB_REQUEST_DIR_OUT | USB_REQUEST_VENDOR | USB_REQUEST_RECIPIENT_DEVICE;
setup->bRequest = cmd;

View File

@@ -946,9 +946,14 @@ static int usbh_rtl8152_read_regs(struct usbh_rtl8152 *rtl8152_class,
uint16_t size,
void *data)
{
struct usb_setup_packet *setup = rtl8152_class->hport->setup;
struct usb_setup_packet *setup;
int ret;
if (!rtl8152_class || !rtl8152_class->hport) {
return -USB_ERR_INVAL;
}
setup = rtl8152_class->hport->setup;
setup->bmRequestType = USB_REQUEST_DIR_IN | USB_REQUEST_VENDOR | USB_REQUEST_RECIPIENT_DEVICE;
setup->bRequest = RTL8152_REQ_GET_REGS;
setup->wValue = value;
@@ -970,7 +975,12 @@ static int usbh_rtl8152_write_regs(struct usbh_rtl8152 *rtl8152_class,
uint16_t size,
void *data)
{
struct usb_setup_packet *setup = rtl8152_class->hport->setup;
struct usb_setup_packet *setup;
if (!rtl8152_class || !rtl8152_class->hport) {
return -USB_ERR_INVAL;
}
setup = rtl8152_class->hport->setup;
setup->bmRequestType = USB_REQUEST_DIR_OUT | USB_REQUEST_VENDOR | USB_REQUEST_RECIPIENT_DEVICE;
setup->bRequest = RTL8152_REQ_SET_REGS;