qga: Fix handle fd leak in acquire_privilege()
token should be closed in all conditions. So move CloseHandle(token) to "out" branch. Signed-off-by: Wang Rui <moon.wangrui@huawei.com> Signed-off-by: Gonglei <arei.gonglei@huawei.com> Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
This commit is contained in:
		
							parent
							
								
									e00fcfeab3
								
							
						
					
					
						commit
						374044f08f
					
				| @ -31,7 +31,7 @@ | ||||
| 
 | ||||
| static void acquire_privilege(const char *name, Error **errp) | ||||
| { | ||||
|     HANDLE token; | ||||
|     HANDLE token = NULL; | ||||
|     TOKEN_PRIVILEGES priv; | ||||
|     Error *local_err = NULL; | ||||
| 
 | ||||
| @ -53,13 +53,15 @@ static void acquire_privilege(const char *name, Error **errp) | ||||
|             goto out; | ||||
|         } | ||||
| 
 | ||||
|         CloseHandle(token); | ||||
|     } else { | ||||
|         error_set(&local_err, QERR_QGA_COMMAND_FAILED, | ||||
|                   "failed to open privilege token"); | ||||
|     } | ||||
| 
 | ||||
| out: | ||||
|     if (token) { | ||||
|         CloseHandle(token); | ||||
|     } | ||||
|     if (local_err) { | ||||
|         error_propagate(errp, local_err); | ||||
|     } | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 Gonglei
						Gonglei