mirror of
https://git.savannah.gnu.org/git/grub.git
synced 2026-10-20 22:48:22 +00:00
tcp: fix memory leaks
Found by: Coverity scan. CID: 96639, 96647
This commit is contained in:
1 parent
9b4256bf05
commit
d4561cd080
1 file changed
+9
-1
+9
-1
@@ -606,10 +606,15 @@ grub_net_tcp_open (char *server,
|
|||||||
|
|
||||||
nb = grub_netbuff_alloc (sizeof (*tcph) + 128);
|
nb = grub_netbuff_alloc (sizeof (*tcph) + 128);
|
||||||
if (!nb)
|
if (!nb)
|
||||||
return NULL;
|
{
|
||||||
|
grub_free (socket);
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
err = grub_netbuff_reserve (nb, 128);
|
err = grub_netbuff_reserve (nb, 128);
|
||||||
if (err)
|
if (err)
|
||||||
{
|
{
|
||||||
|
grub_free (socket);
|
||||||
grub_netbuff_free (nb);
|
grub_netbuff_free (nb);
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
@@ -617,12 +622,14 @@ grub_net_tcp_open (char *server,
|
|||||||
err = grub_netbuff_put (nb, sizeof (*tcph));
|
err = grub_netbuff_put (nb, sizeof (*tcph));
|
||||||
if (err)
|
if (err)
|
||||||
{
|
{
|
||||||
|
grub_free (socket);
|
||||||
grub_netbuff_free (nb);
|
grub_netbuff_free (nb);
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
socket->pq = grub_priority_queue_new (sizeof (struct grub_net_buff *), cmp);
|
socket->pq = grub_priority_queue_new (sizeof (struct grub_net_buff *), cmp);
|
||||||
if (!socket->pq)
|
if (!socket->pq)
|
||||||
{
|
{
|
||||||
|
grub_free (socket);
|
||||||
grub_netbuff_free (nb);
|
grub_netbuff_free (nb);
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
@@ -978,6 +985,7 @@ grub_net_recv_tcp_packet (struct grub_net_buff *nb,
|
|||||||
cmp);
|
cmp);
|
||||||
if (!sock->pq)
|
if (!sock->pq)
|
||||||
{
|
{
|
||||||
|
grub_free (sock);
|
||||||
grub_netbuff_free (nb);
|
grub_netbuff_free (nb);
|
||||||
return grub_errno;
|
return grub_errno;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in new issue
Block a user