aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--IkiWiki/Receive.pm9
-rw-r--r--debian/changelog6
2 files changed, 14 insertions, 1 deletions
diff --git a/IkiWiki/Receive.pm b/IkiWiki/Receive.pm
index c73adfbbb..5908e09f9 100644
--- a/IkiWiki/Receive.pm
+++ b/IkiWiki/Receive.pm
@@ -35,10 +35,17 @@ EOF
}
"u != $uid";
} @{$config{untrusted_committers}}).
- ") exit(0);\n";
+ ") {\n";
$ret.=<<"EOF";
+ /* Trusted user.
+ * Consume all stdin before exiting, as git may
+ * otherwise be unhappy. */
+ char buf[256];
+ while (read(0, &buf, 256) != 0) {}
+ exit(0);
+ }
asprintf(&s, "CALLER_UID=%i", u);
newenviron[i++]=s;
}
diff --git a/debian/changelog b/debian/changelog
index 0c64875f1..ccdeb8300 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,9 @@
+ikiwiki (3.20111108) UNRELEASED; urgency=low
+
+ * Consume all stdin when rcs_receive short-circuits, to avoid git SIPIPE race.
+
+ -- Joey Hess <joeyh@debian.org> Mon, 05 Dec 2011 15:14:48 -0400
+
ikiwiki (3.20111107) unstable; urgency=low
* img: Bugfix to width/height tags for scaled down image when only