2020-11-17 06:08:26 |
yuanjungong |
description |
Hi,there might be a resource leak in function net_init_tap in /net/tap.c.
811 fd = monitor_fd_param(monitor_cur(), tap->fd, errp);
812 if (fd == -1) {
813 return -1;
814 }
815
816 ret = qemu_try_set_nonblock(fd);
817 if (ret < 0) {
818 error_setg_errno(errp, -ret, "%s: Can't use file descriptor %d",
819 name, fd);
820 return -1;
821 }
822
823 vnet_hdr = tap_probe_vnet_hdr(fd, errp);
824 if (vnet_hdr < 0) {
825 close(fd);
826 return -1;
827 }
828
829 net_init_tap_one(tap, peer, "tap", name, NULL,
830 script, downscript,
831 vhostfdname, vnet_hdr, fd, &err);
832 if (err) {
833 error_propagate(errp, err);
834 return -1;
835 }
fd should be closed before return in line 820 and line 834, similar to the implementation in line 825. |
Hi,there might be a resource leak in function net_init_tap in /net/tap.c. The version is 5.1.91.
811 fd = monitor_fd_param(monitor_cur(), tap->fd, errp);
812 if (fd == -1) {
813 return -1;
814 }
815
816 ret = qemu_try_set_nonblock(fd);
817 if (ret < 0) {
818 error_setg_errno(errp, -ret, "%s: Can't use file descriptor %d",
819 name, fd);
820 return -1;
821 }
822
823 vnet_hdr = tap_probe_vnet_hdr(fd, errp);
824 if (vnet_hdr < 0) {
825 close(fd);
826 return -1;
827 }
828
829 net_init_tap_one(tap, peer, "tap", name, NULL,
830 script, downscript,
831 vhostfdname, vnet_hdr, fd, &err);
832 if (err) {
833 error_propagate(errp, err);
834 return -1;
835 }
fd should be closed before return in line 820 and line 834, similar to the implementation in line 825. |
|