mirror of
https://github.com/checkpoint-restore/criu
synced 2025-09-01 23:05:39 +00:00
sockets: free all allocated objected in case of any error
Signed-off-by: Andrey Vagin <avagin@openvz.org> Signed-off-by: Pavel Emelyanov <xemul@parallels.com>
This commit is contained in:
committed by
Pavel Emelyanov
parent
06d8c36c56
commit
d1787c84a0
@@ -193,12 +193,15 @@ static int dump_socket_filter(int sk, SkOptsEntry *soe)
|
|||||||
ret = getsockopt(sk, SOL_SOCKET, SO_GET_FILTER, flt, &len);
|
ret = getsockopt(sk, SOL_SOCKET, SO_GET_FILTER, flt, &len);
|
||||||
if (ret) {
|
if (ret) {
|
||||||
pr_perror("Can't get socket filter\n");
|
pr_perror("Can't get socket filter\n");
|
||||||
|
xfree(flt);
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
soe->so_filter = xmalloc(len * sizeof(*soe->so_filter));
|
soe->so_filter = xmalloc(len * sizeof(*soe->so_filter));
|
||||||
if (!soe->so_filter)
|
if (!soe->so_filter) {
|
||||||
|
xfree(flt);
|
||||||
return -1;
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
encode_filter(flt, soe->so_filter, len);
|
encode_filter(flt, soe->so_filter, len);
|
||||||
soe->n_so_filter = len;
|
soe->n_so_filter = len;
|
||||||
|
Reference in New Issue
Block a user