fd and s could be leaked in case bind/listen failed.
Signed-off-by: Kaifeng Zhu <kaifeng.zhu@citrix.com>
Coverity-IDs:
1055923 1055924
Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com>
fd = socket(PF_INET, SOCK_STREAM, 0);
if (fd < 0) {
perror("socket");
+ qemu_free(s);
return -1;
}
socket_set_nonblock(fd);
ret = bind(fd, (struct sockaddr *)&saddr, sizeof(saddr));
if (ret < 0) {
perror("bind");
+ closesocket(fd);
+ qemu_free(s);
return -1;
}
ret = listen(fd, 0);
if (ret < 0) {
perror("listen");
+ closesocket(fd);
+ qemu_free(s);
return -1;
}
s->vlan = vlan;