Fixed two memory leaks.
This commit is contained in:
parent
30f7f852ba
commit
df92754d67
@ -1340,7 +1340,12 @@ PRIVATE void arp_bufcheck()
|
|||||||
|
|
||||||
for (i= 0, arp_port= arp_port_table; i<eth_conf_nr; i++, arp_port++)
|
for (i= 0, arp_port= arp_port_table; i<eth_conf_nr; i++, arp_port++)
|
||||||
{
|
{
|
||||||
for (pack= arp_port->ap_reqlist; pack;
|
for (pack= arp_port->ap_reclist; pack;
|
||||||
|
pack= pack->acc_ext_link)
|
||||||
|
{
|
||||||
|
bf_check_acc(pack);
|
||||||
|
}
|
||||||
|
for (pack= arp_port->ap_sendlist; pack;
|
||||||
pack= pack->acc_ext_link)
|
pack= pack->acc_ext_link)
|
||||||
{
|
{
|
||||||
bf_check_acc(pack);
|
bf_check_acc(pack);
|
||||||
|
@ -335,9 +335,6 @@ ioreq_t req;
|
|||||||
return NW_OK;
|
return NW_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
acc= bf_memreq(sizeof(nwio_ethstat_t));
|
|
||||||
compare (bf_bufsize(acc), ==, sizeof(*ethstat));
|
|
||||||
|
|
||||||
if (!(eth_port->etp_flags & EPF_GOT_ADDR))
|
if (!(eth_port->etp_flags & EPF_GOT_ADDR))
|
||||||
{
|
{
|
||||||
printf(
|
printf(
|
||||||
@ -349,6 +346,9 @@ ioreq_t req;
|
|||||||
return NW_SUSPEND;
|
return NW_SUSPEND;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
acc= bf_memreq(sizeof(nwio_ethstat_t));
|
||||||
|
compare (bf_bufsize(acc), ==, sizeof(*ethstat));
|
||||||
|
|
||||||
ethstat= (nwio_ethstat_t *)ptr2acc_data(acc);
|
ethstat= (nwio_ethstat_t *)ptr2acc_data(acc);
|
||||||
ethstat->nwes_addr= eth_port->etp_ethaddr;
|
ethstat->nwes_addr= eth_port->etp_ethaddr;
|
||||||
|
|
||||||
|
@ -2269,12 +2269,14 @@ tcp_fd_t *tcp_fd;
|
|||||||
sizeof(*cookiep), TRUE);
|
sizeof(*cookiep), TRUE);
|
||||||
if (!data)
|
if (!data)
|
||||||
return EFAULT;
|
return EFAULT;
|
||||||
|
|
||||||
data= bf_packIffLess(data, sizeof(*cookiep));
|
data= bf_packIffLess(data, sizeof(*cookiep));
|
||||||
cookiep= (tcp_cookie_t *)ptr2acc_data(data);
|
cookiep= (tcp_cookie_t *)ptr2acc_data(data);
|
||||||
|
|
||||||
dst_nr= cookiep->tc_ref;
|
dst_nr= cookiep->tc_ref;
|
||||||
if (dst_nr < 0 || dst_nr >= TCP_FD_NR)
|
if (dst_nr < 0 || dst_nr >= TCP_FD_NR)
|
||||||
{
|
{
|
||||||
|
bf_afree(data); data= NULL;
|
||||||
printf("tcp_acceptto: bad fd %d\n", dst_nr);
|
printf("tcp_acceptto: bad fd %d\n", dst_nr);
|
||||||
tcp_reply_ioctl(tcp_fd, EINVAL);
|
tcp_reply_ioctl(tcp_fd, EINVAL);
|
||||||
return NW_OK;
|
return NW_OK;
|
||||||
@ -2285,6 +2287,7 @@ tcp_fd_t *tcp_fd;
|
|||||||
dst_fd->tf_conn != NULL ||
|
dst_fd->tf_conn != NULL ||
|
||||||
!(dst_fd->tf_flags & TFF_COOKIE))
|
!(dst_fd->tf_flags & TFF_COOKIE))
|
||||||
{
|
{
|
||||||
|
bf_afree(data); data= NULL;
|
||||||
printf("tcp_acceptto: bad flags 0x%x or conn %p for fd %d\n",
|
printf("tcp_acceptto: bad flags 0x%x or conn %p for fd %d\n",
|
||||||
dst_fd->tf_flags, dst_fd->tf_conn, dst_nr);
|
dst_fd->tf_flags, dst_fd->tf_conn, dst_nr);
|
||||||
tcp_reply_ioctl(tcp_fd, EINVAL);
|
tcp_reply_ioctl(tcp_fd, EINVAL);
|
||||||
@ -2292,10 +2295,13 @@ tcp_fd_t *tcp_fd;
|
|||||||
}
|
}
|
||||||
if (memcmp(cookiep, &dst_fd->tf_cookie, sizeof(*cookiep)) != 0)
|
if (memcmp(cookiep, &dst_fd->tf_cookie, sizeof(*cookiep)) != 0)
|
||||||
{
|
{
|
||||||
|
bf_afree(data); data= NULL;
|
||||||
printf("tcp_acceptto: bad cookie\n");
|
printf("tcp_acceptto: bad cookie\n");
|
||||||
return NW_OK;
|
return NW_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bf_afree(data); data= NULL;
|
||||||
|
|
||||||
/* Move connection */
|
/* Move connection */
|
||||||
tcp_fd->tf_listenq[i]= NULL;
|
tcp_fd->tf_listenq[i]= NULL;
|
||||||
tcp_conn->tc_fd= dst_fd;
|
tcp_conn->tc_fd= dst_fd;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user