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