ACK: [PATCH] tpmevlogdump: fix leak of fd on error return paths, voidify close returns

Alex Hung alex.hung at canonical.com
Tue Jul 7 03:41:46 UTC 2020


On 2020-07-06 12:14 p.m., Colin King wrote:
> From: Colin Ian King <colin.king at canonical.com>
> 
> Ensure that fd is not leaked on error returns paths, close these before
> returning.  Make minor closedir re-ordering change at end of function
> to save one closedir call. Explicitly void-ify the error returns from
> close and closedir calls.
> 
> Signed-off-by: Colin Ian King <colin.king at canonical.com>
> ---
>  src/tpm/tpmevlogdump/tpmevlogdump.c | 13 +++++++------
>  1 file changed, 7 insertions(+), 6 deletions(-)
> 
> diff --git a/src/tpm/tpmevlogdump/tpmevlogdump.c b/src/tpm/tpmevlogdump/tpmevlogdump.c
> index 4a6276b3..998b48eb 100644
> --- a/src/tpm/tpmevlogdump/tpmevlogdump.c
> +++ b/src/tpm/tpmevlogdump/tpmevlogdump.c
> @@ -431,7 +431,8 @@ static int tpmevlogdump_test1(fwts_framework *fw)
>  				tpm_logfile_found = true;
>  				if (data == NULL) {
>  					fwts_log_info(fw, "Cannot load the tpm event logs. Aborted.");
> -					closedir(dir);
> +					(void)closedir(dir);
> +					(void)close(fd);
>  					return FWTS_ABORTED;
>  				} else {
>  					/* check if the TPM2 eventlog */
> @@ -440,23 +441,23 @@ static int tpmevlogdump_test1(fwts_framework *fw)
>  					else {
>  						fwts_log_info(fw, "Cannot find the tpm2 event log. Aborted.");
>  						free(data);
> -						closedir(dir);
> +						(void)closedir(dir);
> +						(void)close(fd);
>  						return FWTS_ABORTED;
>  					}
>  					free(data);
>  				}
> -				close(fd);
> +				(void)close(fd);
>  			}
>  		}
>  	} while (tpmdir);
>  
> +	(void)closedir(dir);
> +
>  	if (!tpm_logfile_found) {
>  		fwts_log_info(fw, "Cannot find the tpm event log. Aborted.");
> -		closedir(dir);
>  		return FWTS_ABORTED;
>  	}
> -
> -	closedir(dir);
>  	return FWTS_OK;
>  }
>  
> 

Acked-by: Alex Hung <alex.hung at canonical.com>



More information about the fwts-devel mailing list