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>