Skip to content

Commit

Permalink
Merge branch 'jb/filter-ignore-sigpipe' into maint
Browse files Browse the repository at this point in the history
* jb/filter-ignore-sigpipe:
  Ignore SIGPIPE when running a filter driver
  • Loading branch information
Junio C Hamano committed Mar 5, 2012
2 parents a4d7615 + 6424c2a commit c08afaf
Showing 1 changed file with 5 additions and 0 deletions.
5 changes: 5 additions & 0 deletions convert.c
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
#include "attr.h"
#include "run-command.h"
#include "quote.h"
#include "sigchain.h"

/*
* convert.c - convert a file when checking it out and checking it in.
Expand Down Expand Up @@ -360,12 +361,16 @@ static int filter_buffer(int in, int out, void *data)
if (start_command(&child_process))
return error("cannot fork to run external filter %s", params->cmd);

sigchain_push(SIGPIPE, SIG_IGN);

write_err = (write_in_full(child_process.in, params->src, params->size) < 0);
if (close(child_process.in))
write_err = 1;
if (write_err)
error("cannot feed the input to external filter %s", params->cmd);

sigchain_pop(SIGPIPE);

status = finish_command(&child_process);
if (status)
error("external filter %s failed %d", params->cmd, status);
Expand Down

0 comments on commit c08afaf

Please sign in to comment.