[LTP] [PATCH] lib/tst_tmpdir: tst_get_tmpdir() add error handing

Joerg Vehlow lkml@jv-coder.de
Fri Aug 6 06:40:36 CEST 2021


Hi

On 8/6/2021 5:21 AM, zhanglianjie wrote:
> Signed-off-by: zhanglianjie <zhanglianjie@uniontech.com>
>
> diff --git a/lib/tst_tmpdir.c b/lib/tst_tmpdir.c
> index 0c39eb89f..f006e4893 100644
> --- a/lib/tst_tmpdir.c
> +++ b/lib/tst_tmpdir.c
> @@ -108,12 +108,18 @@ int tst_tmpdir_created(void)
>
>   char *tst_get_tmpdir(void)
>   {
> +	char *ret = NULL;
> +
>   	if (TESTDIR == NULL) {
>   		tst_brkm(TBROK, NULL, "you must call tst_tmpdir() first");
>   		return NULL;
>   	}
>
> -	return strdup(TESTDIR);
> +	ret = strdup(TESTDIR);
Is a failing strdup here really a thing? The only reason strdup should 
be able to fail is with ENOMEM.
The only way tst_brkm will work, if strdup fails here is, if TESTDIR is 
an extremely huge string (the NULL case is already handled above).
> +	if (!ret)
> +		tst_brkm(TBROK, NULL, "strdup() failed");
> +
> +	return ret;
>   }
>
>   const char *tst_get_startwd(void)
> --
> 2.20.1
>
>
Joerg


More information about the ltp mailing list