Re: HEADS UP: Re: FreeBSD Security Advisory FreeBSD-SA-07:01.jai
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Colin Percival wrote:
> No. `cp -f` unlinks the existing file and creates a new file, but will
> still follow a symlink if one is created between the "unlink" syscall and
> the "open" syscall.
>
> /* remove existing destination file name,
> * create a new file */
> (void)unlink(to.p_path);
> if (!lflag)
> to_fd = open(to.p_path, O_WRONLY | O_TRUNC | O_CREAT,
> fs->st_mode & ~(S_ISUID | S_ISGID));
You are right. Atomically in binary is not atomical enough.
mv in its rename()-form will do the job, so we need to create a file in
.. by mktemp and mv it to the real name when filled.
Regards
erdgeist
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.3 (Darwin)
iD8DBQFFrDWmImmQdUyYEgkRAgSgAJ0c5mcaM4LByBUE0LC1Iqdj8ZFSAACdF9qM
fFETX4I+Fvue0u+343bBG8c=
=MkSh
-----END PGP SIGNATURE-----
_______________________________________________
freebsd-security@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-security
To unsubscribe, send any mail to "freebsd-security-unsubscribe@freebsd.org"
討論串 (同標題文章)
完整討論串 (本文為第 12 之 22 篇):