bin/153261: sed: fix for a race condition (from illumos)
Pedro F. Giffuni
giffunip at tutopia.com
Wed Dec 29 19:00:28 UTC 2010
The following reply was made to PR bin/153261; it has been noted by GNATS.
From: "Pedro F. Giffuni" <giffunip at tutopia.com>
To: bug-followup at FreeBSD.org, Jilles Tjoelker <jilles at 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--
More information about the freebsd-bugs
mailing list