Skip site navigation (1)Skip section navigation (2)
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>