wireless/gs2200m: Fix freeing uninitialized memory
Add initialize local variable and check the buffer is allocated before free().
This commit is contained in:
parent
c1d060dac3
commit
f8354b0c03
@ -846,6 +846,8 @@ static int recvfrom_request(int fd, FAR struct gs2200m_s *priv,
|
|||||||
gs2200m_printf("%s: start (req->max_buflen=%d) \n",
|
gs2200m_printf("%s: start (req->max_buflen=%d) \n",
|
||||||
__func__, req->max_buflen);
|
__func__, req->max_buflen);
|
||||||
|
|
||||||
|
memset(&rmsg, 0, sizeof(rmsg));
|
||||||
|
|
||||||
/* Check if this socket exists. */
|
/* Check if this socket exists. */
|
||||||
|
|
||||||
usock = gs2200m_socket_get(priv, req->usockid);
|
usock = gs2200m_socket_get(priv, req->usockid);
|
||||||
@ -864,7 +866,6 @@ static int recvfrom_request(int fd, FAR struct gs2200m_s *priv,
|
|||||||
goto prepare;
|
goto prepare;
|
||||||
}
|
}
|
||||||
|
|
||||||
memset(&rmsg, 0, sizeof(rmsg));
|
|
||||||
rmsg.buf = calloc(1, req->max_buflen);
|
rmsg.buf = calloc(1, req->max_buflen);
|
||||||
ASSERT(rmsg.buf);
|
ASSERT(rmsg.buf);
|
||||||
|
|
||||||
@ -953,7 +954,10 @@ err_out:
|
|||||||
|
|
||||||
gs2200m_printf("%s: *** end ret=%d \n", __func__, ret);
|
gs2200m_printf("%s: *** end ret=%d \n", __func__, ret);
|
||||||
|
|
||||||
free(rmsg.buf);
|
if (rmsg.buf)
|
||||||
|
{
|
||||||
|
free(rmsg.buf);
|
||||||
|
}
|
||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user