Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 20 Nov 2012 14:22:26 +0200
From:      Jaakko Heinonen <jh@FreeBSD.org>
To:        Baptiste Daroussin <bapt@FreeBSD.org>
Cc:        svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org
Subject:   Re: svn commit: r243328 - head/lib/libutil
Message-ID:  <20121120122226.GA1828@a91-153-116-96.elisa-laajakaista.fi>
In-Reply-To: <201211200722.qAK7M7Im057617@svn.freebsd.org>
References:  <201211200722.qAK7M7Im057617@svn.freebsd.org>

next in thread | previous in thread | raw e-mail | index | archive | help

Hi!

On 2012-11-20, Baptiste Daroussin wrote:
>   change mode the group file to 0644 after a successfull rename(2)
> 
>  int
>  gr_mkdb(void)
>  {
> -	return (rename(tempname, group_file));
> +	int ret;
> +
> +	ret = rename(tempname, group_file);
> +
> +	if (ret == 0)
> +		chmod(group_file, 0644);
> +
> +	return (ret);
>  }

Rename+chmod is not an atomic operation. There is a window when the file
has wrong permissions. Also, you don't check the return value of
chmod(). Maybe chmod first and then rename?

-- 
Jaakko



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20121120122226.GA1828>