[PATCH] lib/util/util.c: move null-check before use

Jeremy Allison jra at samba.org
Thu Feb 25 23:12:07 UTC 2016


On Thu, Feb 25, 2016 at 05:06:41PM +0100, Aurélien Aptel wrote:
> Hi,
> 
> This patch moves the null pointer check *before* the pointer is used in
> the strlen() call.
>     
> - still allocate the `fname` array on the stack
> - still compiles under C90 definition/code mixing rules
> 
> Please review&push

A bit too 'clever' I'm afraid, although correct.

I'd prefer splitting out so len is declared, than
initialized after the check for !dir.

Jeremy.

> Thanks!
> 
> -- 
> Aurélien Aptel / SUSE Labs Samba Team
> GPG: 1839 CB5F 9F5B FB9B AA97  8C99 03C8 A49B 521B D5D3
> SUSE Linux GmbH, Maxfeldstraße 5, 90409 Nürnberg, Germany
> GF: Felix Imendörffer, Jane Smithard, Graham Norton, HRB 21284 (AG
> Nürnberg)

> From 675aa8de1876c026052248f5112db8a15562980c Mon Sep 17 00:00:00 2001
> From: Aurelien Aptel <aaptel at suse.com>
> Date: Thu, 25 Feb 2016 14:11:10 +0100
> Subject: [PATCH 4/4] lib/util/util.c: move null-check before use
> 
> moves a null pointer check *before* the pointer is used in
> the strlen() call
> 
> - still allocate the `fname` array on the stack
> - still compiles under C90 definition/code mixing rules
> 
> Signed-off-by: Aurelien Aptel <aaptel at suse.com>
> ---
>  lib/util/util.c | 6 +-----
>  1 file changed, 1 insertion(+), 5 deletions(-)
> 
> diff --git a/lib/util/util.c b/lib/util/util.c
> index 03edd7f..683741c 100644
> --- a/lib/util/util.c
> +++ b/lib/util/util.c
> @@ -66,15 +66,11 @@ _PUBLIC_ const char *tmpdir(void)
>  **/
>  int create_unlink_tmp(const char *dir)
>  {
> -	size_t len = strlen(dir);
> +	size_t len = strlen(dir ? dir : (dir = tmpdir()));
>  	char fname[len+25];
>  	int fd;
>  	mode_t mask;
>  
> -	if (!dir) {
> -		dir = tmpdir();
> -	}
> -
>  	len = snprintf(fname, sizeof(fname), "%s/listenerlock_XXXXXX", dir);
>  	if (len >= sizeof(fname)) {
>  		errno = ENOMEM;
> -- 
> 2.1.4
> 






More information about the samba-technical mailing list