aboutsummaryrefslogtreecommitdiff
path: root/ikiwiki-mass-rebuild
diff options
context:
space:
mode:
authorJoey Hess <joey@kodama.kitenet.net>2008-05-31 14:36:15 -0400
committerJoey Hess <joey@kodama.kitenet.net>2008-05-31 14:37:05 -0400
commitc00890a2f033aa36dd5d88f8d3bdd5b7a927a687 (patch)
treefe46d5c4e33410cc4f10b5b86f1e20d2fa07a1e0 /ikiwiki-mass-rebuild
parent0a35e8a3525db58bf38cd6ffdc45c7baaae04dd8 (diff)
downloadikiwiki-c00890a2f033aa36dd5d88f8d3bdd5b7a927a687.tar
ikiwiki-c00890a2f033aa36dd5d88f8d3bdd5b7a927a687.tar.gz
ikiwiki-mass-rebuild: under $! before setting $) to avoid strange errno issue
This fixes a problem sgran saw on alioth. Apparently nss-db sets errno to ENOENT as a side effect trying to read an optional file, but succeeds anyway. Then, somehow, errno remains set across the library calls made by $). So unset it first as a workaround; there's probably a nss-db, libc, and/or perl bug underneath.
Diffstat (limited to 'ikiwiki-mass-rebuild')
-rwxr-xr-xikiwiki-mass-rebuild1
1 files changed, 1 insertions, 0 deletions
diff --git a/ikiwiki-mass-rebuild b/ikiwiki-mass-rebuild
index 8cc6f45c1..0057beb4f 100755
--- a/ikiwiki-mass-rebuild
+++ b/ikiwiki-mass-rebuild
@@ -34,6 +34,7 @@ sub processline {
if (! $pid) {
my ($uuid, $ugid) = (getpwnam($user))[2, 3];
my $grouplist=join(" ", $ugid, $ugid, supplemental_groups($user));
+ undef $!;
$)=$grouplist;
if ($!) {
die "failed to set egid $grouplist: $!";