usb_dc_stm32: Check if functions' arguments are valid

Check if usb_dc_* functions' arguments are valid.
Fixes `tests/subsys/usb/device` on STM32 SoCs.

Signed-off-by: Yannis Damigos <giannis.damigos@gmail.com>
This commit is contained in:
Yannis Damigos 2019-05-18 21:45:56 +03:00 committed by Anas Nashif
commit a1e3f39214

View file

@ -533,7 +533,7 @@ int usb_dc_ep_start_read(u8_t ep, u8_t *data, u32_t max_data_len)
int usb_dc_ep_get_read_count(u8_t ep, u32_t *read_bytes) int usb_dc_ep_get_read_count(u8_t ep, u32_t *read_bytes)
{ {
if (!EP_IS_OUT(ep)) { if (!EP_IS_OUT(ep) || !read_bytes) {
LOG_ERR("invalid ep 0x%02x", ep); LOG_ERR("invalid ep 0x%02x", ep);
return -EINVAL; return -EINVAL;
} }
@ -659,7 +659,7 @@ int usb_dc_ep_is_stalled(const u8_t ep, u8_t *const stalled)
LOG_DBG("ep 0x%02x", ep); LOG_DBG("ep 0x%02x", ep);
if (!ep_state) { if (!ep_state || !stalled) {
return -EINVAL; return -EINVAL;
} }
@ -730,7 +730,7 @@ int usb_dc_ep_write(const u8_t ep, const u8_t *const data,
LOG_DBG("ep 0x%02x, len %u", ep, data_len); LOG_DBG("ep 0x%02x, len %u", ep, data_len);
if (!EP_IS_IN(ep)) { if (!ep_state || !EP_IS_IN(ep)) {
LOG_ERR("invalid ep 0x%02x", ep); LOG_ERR("invalid ep 0x%02x", ep);
return -EINVAL; return -EINVAL;
} }
@ -822,7 +822,7 @@ int usb_dc_ep_read_continue(u8_t ep)
{ {
struct usb_dc_stm32_ep_state *ep_state = usb_dc_stm32_get_ep_state(ep); struct usb_dc_stm32_ep_state *ep_state = usb_dc_stm32_get_ep_state(ep);
if (!EP_IS_OUT(ep)) { /* Check if OUT ep */ if (!ep_state || !EP_IS_OUT(ep)) { /* Check if OUT ep */
LOG_ERR("Not valid endpoint: %02x", ep); LOG_ERR("Not valid endpoint: %02x", ep);
return -EINVAL; return -EINVAL;
} }
@ -859,6 +859,12 @@ int usb_dc_ep_halt(const u8_t ep)
int usb_dc_ep_flush(const u8_t ep) int usb_dc_ep_flush(const u8_t ep)
{ {
struct usb_dc_stm32_ep_state *ep_state = usb_dc_stm32_get_ep_state(ep);
if (!ep_state) {
return -EINVAL;
}
LOG_ERR("Not implemented"); LOG_ERR("Not implemented");
return 0; return 0;
@ -868,6 +874,10 @@ int usb_dc_ep_mps(const u8_t ep)
{ {
struct usb_dc_stm32_ep_state *ep_state = usb_dc_stm32_get_ep_state(ep); struct usb_dc_stm32_ep_state *ep_state = usb_dc_stm32_get_ep_state(ep);
if (!ep_state) {
return -EINVAL;
}
return ep_state->ep_mps; return ep_state->ep_mps;
} }