Commit a6a476ff authored by Pavel Emelyanov's avatar Pavel Emelyanov

skopts: Prepare for xmalloc-able entries on SkOptsEntry

parent a723809c
...@@ -29,6 +29,7 @@ struct socket_desc { ...@@ -29,6 +29,7 @@ struct socket_desc {
extern int dump_socket(struct fd_parms *p, int lfd, const struct cr_fdset *cr_fdset); extern int dump_socket(struct fd_parms *p, int lfd, const struct cr_fdset *cr_fdset);
extern int dump_socket_opts(int sk, SkOptsEntry *soe); extern int dump_socket_opts(int sk, SkOptsEntry *soe);
extern int restore_socket_opts(int sk, SkOptsEntry *soe); extern int restore_socket_opts(int sk, SkOptsEntry *soe);
extern void release_skopts(SkOptsEntry *);
extern int sk_collect_one(int ino, int family, struct socket_desc *d); extern int sk_collect_one(int ino, int family, struct socket_desc *d);
extern int collect_sockets(int pid); extern int collect_sockets(int pid);
......
...@@ -299,6 +299,7 @@ static int do_dump_one_inet_fd(int lfd, u32 id, const struct fd_parms *p, int fa ...@@ -299,6 +299,7 @@ static int do_dump_one_inet_fd(int lfd, u32 id, const struct fd_parms *p, int fa
break; break;
} }
err: err:
release_skopts(&skopts);
xfree(ie.src_addr); xfree(ie.src_addr);
xfree(ie.dst_addr); xfree(ie.dst_addr);
return ret; return ret;
......
...@@ -193,6 +193,7 @@ static int dump_one_packet_fd(int lfd, u32 id, const struct fd_parms *p) ...@@ -193,6 +193,7 @@ static int dump_one_packet_fd(int lfd, u32 id, const struct fd_parms *p)
ret = pb_write_one(fdset_fd(glob_fdset, CR_FD_PACKETSK), &psk, PB_PACKETSK); ret = pb_write_one(fdset_fd(glob_fdset, CR_FD_PACKETSK), &psk, PB_PACKETSK);
out: out:
release_skopts(&skopts);
xfree(psk.rx_ring); xfree(psk.rx_ring);
xfree(psk.tx_ring); xfree(psk.tx_ring);
for (i = 0; i < psk.n_mclist; i++) for (i = 0; i < psk.n_mclist; i++)
......
...@@ -232,6 +232,7 @@ static int dump_one_unix_fd(int lfd, u32 id, const struct fd_parms *p) ...@@ -232,6 +232,7 @@ static int dump_one_unix_fd(int lfd, u32 id, const struct fd_parms *p)
pr_info("Dumping unix socket at %d\n", p->fd); pr_info("Dumping unix socket at %d\n", p->fd);
show_one_unix("Dumping", sk); show_one_unix("Dumping", sk);
show_one_unix_img("Dumped", &ue); show_one_unix_img("Dumped", &ue);
release_skopts(&skopts);
list_del_init(&sk->list); list_del_init(&sk->list);
sk->sd.already_dumped = 1; sk->sd.already_dumped = 1;
...@@ -239,6 +240,7 @@ static int dump_one_unix_fd(int lfd, u32 id, const struct fd_parms *p) ...@@ -239,6 +240,7 @@ static int dump_one_unix_fd(int lfd, u32 id, const struct fd_parms *p)
return 0; return 0;
err: err:
release_skopts(&skopts);
return -1; return -1;
} }
......
...@@ -231,6 +231,10 @@ int dump_socket_opts(int sk, SkOptsEntry *soe) ...@@ -231,6 +231,10 @@ int dump_socket_opts(int sk, SkOptsEntry *soe)
return ret; return ret;
} }
void release_skopts(SkOptsEntry *soe)
{
}
int dump_socket(struct fd_parms *p, int lfd, const struct cr_fdset *cr_fdset) int dump_socket(struct fd_parms *p, int lfd, const struct cr_fdset *cr_fdset)
{ {
int family; int family;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment