[PATCH] detect dup failure
- From
Jim Meyering <jim@meyering.net>
- Date
- Jun 27, 2007, 11:59 UTC
- Message-ID
- <87wsxpobf0.fsf@rho.meyering.net>
Without this, if you ever run out of file descriptors, dup will fail (silently), fdopen will return NULL, and fprintf will try to dereference NULL (i.e., usually segfault).
Signed-off-by: Jim Meyering <jim@meyering.net> --- builtin-log.c | 8 ++++++-- 1 files changed, 6 insertions(+), 2 deletions(-)
diff --git a/builtin-log.c b/builtin-log.c index 073a2a1..ca54387 100644 --- a/builtin-log.c +++ b/builtin-log.c @@ -588,8 +588,12 @@ int cmd_format_patch(int argc, const char **argv, const char *prefix) if (ignore_if_in_upstream) get_patch_ids(&rev, &ids, prefix); - if (!use_stdout) - realstdout = fdopen(dup(1), "w"); + if (!use_stdout) { + int fd = dup(1); + if (fd < 0) + die("failed to duplicate standard output"); + realstdout = fdopen(fd, "w"); + } prepare_revision_walk(&rev); while ((commit = get_revision(&rev)) != NULL) {