mirror of
https://github.com/lwip-tcpip/lwip.git
synced 2025-02-10 03:39:55 +00:00
Fix bug #47446: tcpip api calls: fail if mbox is invalid instead of returning an error
This commit is contained in:
parent
a5d4a27ae1
commit
b28a80375b
@ -170,9 +170,8 @@ tcpip_inpkt(struct pbuf *p, struct netif *inp, netif_input_fn input_fn)
|
|||||||
#else /* LWIP_TCPIP_CORE_LOCKING_INPUT */
|
#else /* LWIP_TCPIP_CORE_LOCKING_INPUT */
|
||||||
struct tcpip_msg *msg;
|
struct tcpip_msg *msg;
|
||||||
|
|
||||||
if (!sys_mbox_valid_val(mbox)) {
|
LWIP_ASSERT("Invalid mbox", sys_mbox_valid_val(mbox));
|
||||||
return ERR_VAL;
|
|
||||||
}
|
|
||||||
msg = (struct tcpip_msg *)memp_malloc(MEMP_TCPIP_MSG_INPKT);
|
msg = (struct tcpip_msg *)memp_malloc(MEMP_TCPIP_MSG_INPKT);
|
||||||
if (msg == NULL) {
|
if (msg == NULL) {
|
||||||
return ERR_MEM;
|
return ERR_MEM;
|
||||||
@ -226,7 +225,8 @@ tcpip_callback_with_block(tcpip_callback_fn function, void *ctx, u8_t block)
|
|||||||
{
|
{
|
||||||
struct tcpip_msg *msg;
|
struct tcpip_msg *msg;
|
||||||
|
|
||||||
if (sys_mbox_valid_val(mbox)) {
|
LWIP_ASSERT("Invalid mbox", sys_mbox_valid_val(mbox));
|
||||||
|
|
||||||
msg = (struct tcpip_msg *)memp_malloc(MEMP_TCPIP_MSG_API);
|
msg = (struct tcpip_msg *)memp_malloc(MEMP_TCPIP_MSG_API);
|
||||||
if (msg == NULL) {
|
if (msg == NULL) {
|
||||||
return ERR_MEM;
|
return ERR_MEM;
|
||||||
@ -244,8 +244,6 @@ tcpip_callback_with_block(tcpip_callback_fn function, void *ctx, u8_t block)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
return ERR_OK;
|
return ERR_OK;
|
||||||
}
|
|
||||||
return ERR_VAL;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#if LWIP_TCPIP_TIMEOUT
|
#if LWIP_TCPIP_TIMEOUT
|
||||||
@ -262,7 +260,8 @@ tcpip_timeout(u32_t msecs, sys_timeout_handler h, void *arg)
|
|||||||
{
|
{
|
||||||
struct tcpip_msg *msg;
|
struct tcpip_msg *msg;
|
||||||
|
|
||||||
if (sys_mbox_valid_val(mbox)) {
|
LWIP_ASSERT("Invalid mbox", sys_mbox_valid_val(mbox));
|
||||||
|
|
||||||
msg = (struct tcpip_msg *)memp_malloc(MEMP_TCPIP_MSG_API);
|
msg = (struct tcpip_msg *)memp_malloc(MEMP_TCPIP_MSG_API);
|
||||||
if (msg == NULL) {
|
if (msg == NULL) {
|
||||||
return ERR_MEM;
|
return ERR_MEM;
|
||||||
@ -274,8 +273,6 @@ tcpip_timeout(u32_t msecs, sys_timeout_handler h, void *arg)
|
|||||||
msg->msg.tmo.arg = arg;
|
msg->msg.tmo.arg = arg;
|
||||||
sys_mbox_post(&mbox, msg);
|
sys_mbox_post(&mbox, msg);
|
||||||
return ERR_OK;
|
return ERR_OK;
|
||||||
}
|
|
||||||
return ERR_VAL;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -291,7 +288,8 @@ tcpip_untimeout(sys_timeout_handler h, void *arg)
|
|||||||
{
|
{
|
||||||
struct tcpip_msg *msg;
|
struct tcpip_msg *msg;
|
||||||
|
|
||||||
if (sys_mbox_valid_val(mbox)) {
|
LWIP_ASSERT("Invalid mbox", sys_mbox_valid_val(mbox));
|
||||||
|
|
||||||
msg = (struct tcpip_msg *)memp_malloc(MEMP_TCPIP_MSG_API);
|
msg = (struct tcpip_msg *)memp_malloc(MEMP_TCPIP_MSG_API);
|
||||||
if (msg == NULL) {
|
if (msg == NULL) {
|
||||||
return ERR_MEM;
|
return ERR_MEM;
|
||||||
@ -302,8 +300,6 @@ tcpip_untimeout(sys_timeout_handler h, void *arg)
|
|||||||
msg->msg.tmo.arg = arg;
|
msg->msg.tmo.arg = arg;
|
||||||
sys_mbox_post(&mbox, msg);
|
sys_mbox_post(&mbox, msg);
|
||||||
return ERR_OK;
|
return ERR_OK;
|
||||||
}
|
|
||||||
return ERR_VAL;
|
|
||||||
}
|
}
|
||||||
#endif /* LWIP_TCPIP_TIMEOUT */
|
#endif /* LWIP_TCPIP_TIMEOUT */
|
||||||
|
|
||||||
@ -332,7 +328,8 @@ tcpip_send_msg_wait_sem(tcpip_callback_fn fn, void *apimsg, sys_sem_t* sem)
|
|||||||
#else /* LWIP_TCPIP_CORE_LOCKING */
|
#else /* LWIP_TCPIP_CORE_LOCKING */
|
||||||
LWIP_ASSERT("semaphore not initialized", sys_sem_valid(sem));
|
LWIP_ASSERT("semaphore not initialized", sys_sem_valid(sem));
|
||||||
|
|
||||||
if (sys_mbox_valid_val(mbox)) {
|
LWIP_ASSERT("Invalid mbox", sys_mbox_valid_val(mbox));
|
||||||
|
|
||||||
TCPIP_MSG_VAR_DECLARE(msg);
|
TCPIP_MSG_VAR_DECLARE(msg);
|
||||||
|
|
||||||
TCPIP_MSG_VAR_ALLOC(msg);
|
TCPIP_MSG_VAR_ALLOC(msg);
|
||||||
@ -343,8 +340,6 @@ tcpip_send_msg_wait_sem(tcpip_callback_fn fn, void *apimsg, sys_sem_t* sem)
|
|||||||
sys_arch_sem_wait(sem, 0);
|
sys_arch_sem_wait(sem, 0);
|
||||||
TCPIP_MSG_VAR_FREE(msg);
|
TCPIP_MSG_VAR_FREE(msg);
|
||||||
return ERR_OK;
|
return ERR_OK;
|
||||||
}
|
|
||||||
return ERR_VAL;
|
|
||||||
#endif /* LWIP_TCPIP_CORE_LOCKING */
|
#endif /* LWIP_TCPIP_CORE_LOCKING */
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -368,7 +363,8 @@ tcpip_api_call(tcpip_api_call_fn fn, struct tcpip_api_call_data *call)
|
|||||||
UNLOCK_TCPIP_CORE();
|
UNLOCK_TCPIP_CORE();
|
||||||
return err;
|
return err;
|
||||||
#else /* LWIP_TCPIP_CORE_LOCKING */
|
#else /* LWIP_TCPIP_CORE_LOCKING */
|
||||||
if (sys_mbox_valid_val(mbox)) {
|
LWIP_ASSERT("Invalid mbox", sys_mbox_valid_val(mbox));
|
||||||
|
|
||||||
TCPIP_MSG_VAR_DECLARE(msg);
|
TCPIP_MSG_VAR_DECLARE(msg);
|
||||||
err_t err;
|
err_t err;
|
||||||
|
|
||||||
@ -397,8 +393,6 @@ tcpip_api_call(tcpip_api_call_fn fn, struct tcpip_api_call_data *call)
|
|||||||
#endif /* LWIP_NETCONN_SEM_PER_THREAD */
|
#endif /* LWIP_NETCONN_SEM_PER_THREAD */
|
||||||
|
|
||||||
return call->err;
|
return call->err;
|
||||||
}
|
|
||||||
return ERR_VAL;
|
|
||||||
#endif /* LWIP_TCPIP_CORE_LOCKING */
|
#endif /* LWIP_TCPIP_CORE_LOCKING */
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -444,9 +438,7 @@ tcpip_callbackmsg_delete(struct tcpip_callback_msg* msg)
|
|||||||
err_t
|
err_t
|
||||||
tcpip_trycallback(struct tcpip_callback_msg* msg)
|
tcpip_trycallback(struct tcpip_callback_msg* msg)
|
||||||
{
|
{
|
||||||
if (!sys_mbox_valid_val(mbox)) {
|
LWIP_ASSERT("Invalid mbox", sys_mbox_valid_val(mbox));
|
||||||
return ERR_VAL;
|
|
||||||
}
|
|
||||||
return sys_mbox_trypost(&mbox, msg);
|
return sys_mbox_trypost(&mbox, msg);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user