Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 20 Nov 2012 14:38:37 +0100
From:      Baptiste Daroussin <bapt@FreeBSD.org>
To:        Jaakko Heinonen <jh@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:  <20121120133837.GK71195@ithaqua.etoilebsd.net>
In-Reply-To: <20121120122226.GA1828@a91-153-116-96.elisa-laajakaista.fi>
References:  <201211200722.qAK7M7Im057617@svn.freebsd.org> <20121120122226.GA1828@a91-153-116-96.elisa-laajakaista.fi>

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

--/ZYM6PqDyfNytx60
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable

On Tue, Nov 20, 2012 at 02:22:26PM +0200, Jaakko Heinonen wrote:
>=20
> Hi!
>=20
> On 2012-11-20, Baptiste Daroussin wrote:
> >   change mode the group file to 0644 after a successfull rename(2)
> >=20
> >  int
> >  gr_mkdb(void)
> >  {
> > -	return (rename(tempname, group_file));
> > +	int ret;
> > +
> > +	ret =3D rename(tempname, group_file);
> > +
> > +	if (ret =3D=3D 0)
> > +		chmod(group_file, 0644);
> > +
> > +	return (ret);
> >  }
>=20
> 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?
>=20
> --=20
> Jaakko

Does this looks better to you?
http://people.freebsd.org/~bapt/gr_util.diff

regards,
Bapt

--/ZYM6PqDyfNytx60
Content-Type: application/pgp-signature

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.19 (FreeBSD)

iEYEARECAAYFAlCrh90ACgkQ8kTtMUmk6EzfsQCfVkPtjjtCQ+dtDWdHuiLSUv1I
PrEAn1RGIPNR7vctapc25JWf3daeIChw
=sc/T
-----END PGP SIGNATURE-----

--/ZYM6PqDyfNytx60--



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