Date: Wed, 29 Dec 2010 19:00:27 GMT From: "Pedro F. Giffuni" <giffunip@tutopia.com> To: freebsd-bugs@FreeBSD.org Subject: Re: bin/153261: sed: fix for a race condition (from illumos) Message-ID: <201012291900.oBTJ0RBr077593@freefall.freebsd.org>
next in thread | raw e-mail | index | archive | help
The following reply was made to PR bin/153261; it has been noted by GNATS. From: "Pedro F. Giffuni" <giffunip@tutopia.com> To: bug-followup@FreeBSD.org, Jilles Tjoelker <jilles@stack.nl> Cc: Subject: Re: bin/153261: sed: fix for a race condition (from illumos) Date: Wed, 29 Dec 2010 10:51:23 -0800 (PST) --0-1803587171-1293648683=:46994 Content-Type: text/plain; charset=us-ascii Garret D'Amore (from Illumos) has provided some feedback: ____ Thanks. Two issues: a) On Solaris, the errno is ENOSYS, not EOPNOTSUPP. b) The "unlink(tmpfname)" and exit(1) logic don't seem to be honored in the case of rename() failing. I think the simpler solution is to unconditionally try the rename() if link fails, and not worry about a difference in the error message. I also noticed that we unconditionally try to unlink(tmpfname), but that only makes sense if tmpfname is a non-empty string. :-) ____ So I attach a new patch. --0-1803587171-1293648683=:46994 Content-Type: text/plain; name="patch-sed2.txt" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="patch-sed2.txt" LS0tIHNlZC9tYWluLmMub3JpZwkyMDEwLTEyLTE4IDE4OjM3OjUwLjAwMDAw MDAwMCArMDAwMAorKysgc2VkL21haW4uYwkyMDEwLTEyLTI3IDE0OjU1OjU0 LjAwMDAwMDAwMCArMDAwMApAQCAtMzM4LDggKzMzOCwxMiBAQAogCQlpZiAo aW5maWxlICE9IE5VTEwpIHsKIAkJCWZjbG9zZShpbmZpbGUpOwogCQkJaWYg KCpvbGRmbmFtZSAhPSAnXDAnKSB7Ci0JCQkJaWYgKHJlbmFtZShmbmFtZSwg b2xkZm5hbWUpICE9IDApIHsKLQkJCQkJd2FybigicmVuYW1lKCkiKTsKKwkJ CQkvKiBpZiB0aGVyZSB3YXMgYSBiYWNrdXAgZmlsZSwgcmVtb3ZlIGl0ICov CisJCQkJaWYgKHVubGluayhvbGRmbmFtZSkgIT0wKQorCQkJCQlpZiAocmVu YW1lKGZuYW1lLCBvbGRmbmFtZSkgIT0gMCkKKwkJCQkJCXdhcm4oInJlbmFt ZSgpIik7CisJCQkJZWxzZSBpZiAobGluayhmbmFtZSwgb2xkZm5hbWUpICE9 IDApIHsKKwkJCQkJd2FybigibGluaygpIik7CiAJCQkJCXVubGluayh0bXBm bmFtZSk7CiAJCQkJCWV4aXQoMSk7CiAJCQkJfQpAQCAtMzQ3LDkgKzM1MSwx OCBAQAogCQkJfQogCQkJaWYgKCp0bXBmbmFtZSAhPSAnXDAnKSB7CiAJCQkJ aWYgKG91dGZpbGUgIT0gTlVMTCAmJiBvdXRmaWxlICE9IHN0ZG91dCkKLQkJ CQkJZmNsb3NlKG91dGZpbGUpOworCQkJCQlpZiAoZmNsb3NlKG91dGZpbGUp ICE9IDApIHsKKwkJCQkJCXdhcm4oImZjbG9zZSgpIik7CisJCQkJCQl1bmxp bmsodG1wZm5hbWUpOworCQkJCQkJZXhpdCgxKTsKKwkJCQkJfQogCQkJCW91 dGZpbGUgPSBOVUxMOwotCQkJCXJlbmFtZSh0bXBmbmFtZSwgZm5hbWUpOwor CQkJCWlmIChyZW5hbWUodG1wZm5hbWUsIGZuYW1lKSAhPSAwKSB7CisJCQkJ CS8qIHRoaXMgc2hvdWxkIG5vdCBoYXBwZW4gcmVhbGx5ISAqLworCQkJCQl3 YXJuKCJyZW5hbWUoKSIpOworCQkJCQl1bmxpbmsodG1wZm5hbWUpOworCQkJ CQlleGl0KDEpOworCQkJCX0KIAkJCQkqdG1wZm5hbWUgPSAnXDAnOwogCQkJ fQogCQkJb3V0Zm5hbWUgPSBOVUxMOwo= --0-1803587171-1293648683=:46994--
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201012291900.oBTJ0RBr077593>