tap: fix possible fd leak in net_init_tap
In hotplugging scenario, taking those true branch, the file handler do not be closed. Let's close them before return. Signed-off-by: Gonglei <arei.gonglei@huawei.com> Signed-off-by: Michael Tokarev <mjt@tls.msk.ru>
This commit is contained in:
		
							parent
							
								
									d0caa3eb53
								
							
						
					
					
						commit
						84f8f3dace
					
				| @ -796,6 +796,7 @@ int net_init_tap(const NetClientOptions *opts, const char *name, | ||||
|         if (net_init_tap_one(tap, peer, "bridge", name, ifname, | ||||
|                              script, downscript, vhostfdname, | ||||
|                              vnet_hdr, fd)) { | ||||
|             close(fd); | ||||
|             return -1; | ||||
|         } | ||||
|     } else { | ||||
| @ -823,6 +824,7 @@ int net_init_tap(const NetClientOptions *opts, const char *name, | ||||
|             if (queues > 1 && i == 0 && !tap->has_ifname) { | ||||
|                 if (tap_fd_get_ifname(fd, ifname)) { | ||||
|                     error_report("Fail to get ifname"); | ||||
|                     close(fd); | ||||
|                     return -1; | ||||
|                 } | ||||
|             } | ||||
| @ -831,6 +833,7 @@ int net_init_tap(const NetClientOptions *opts, const char *name, | ||||
|                                  i >= 1 ? "no" : script, | ||||
|                                  i >= 1 ? "no" : downscript, | ||||
|                                  vhostfdname, vnet_hdr, fd)) { | ||||
|                 close(fd); | ||||
|                 return -1; | ||||
|             } | ||||
|         } | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 Gonglei
						Gonglei