1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
|
graphic: 0.608
network: 0.592
socket: 0.584
semantic: 0.574
device: 0.571
vnc: 0.570
other: 0.570
instruction: 0.528
mistranslation: 0.482
assembly: 0.399
boot: 0.385
KVM: 0.368
resource leak in /net/tap.c
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 yuanjungong,
You can send a patch to qemu-devel mailing list(https://wiki.qemu.org/MailingLists) to fix this memleak according to https://wiki.qemu.org/Contribute/SubmitAPatch.
Thanks.
Hi yuanjungong,
If you don't have time to submit a patch, can I submit a patch to fix it?
A patch has been submitted at https://lists.nongnu.org/archive/html/qemu-trivial/2020-11/msg00355.html
Hi Alex,
Thanks for offering to help, but I submitted a patch to the maillist yesterday. Thank you again.
Hi -- the patch looks good to me, but it looks like you didn't send it to qemu-devel, only to qemu-trivial. Would you mind resending it to the right list, please? (You can cc qemu-trivial if you like, but all patches have to go to the main qemu-devel list, because systems like patchew https://patchew.org/QEMU/ and also many developers only read the main list.)
Fix now in master for 5.2 as commit f012bec8909820390936
Released with QEMU v5.2.0.
|