From 0511ecfd8465fe44c8ba4d26278aeb884733f1ed Mon Sep 17 00:00:00 2001 From: sin Date: Mon, 6 Jan 2014 18:12:06 +0000 Subject: [PATCH] If eatspace() encounters EOF don't try to read again from stdin --- xargs.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/xargs.c b/xargs.c index da7754c..1bbf58c 100644 --- a/xargs.c +++ b/xargs.c @@ -15,7 +15,7 @@ enum { static int inputc(void); static void deinputc(int); static void fillbuf(int); -static void eatspace(void); +static int eatspace(void); static int parsequote(int); static void parseescape(void); static char *poparg(void); @@ -125,7 +125,7 @@ fillbuf(int ch) argb[argbpos] = ch; } -static void +static int eatspace(void) { int ch; @@ -136,9 +136,10 @@ eatspace(void) break; default: deinputc(ch); - return; + return ch; } } + return -1; } static int @@ -176,7 +177,8 @@ poparg(void) int ch; argbpos = 0; - eatspace(); + if (eatspace() == -1) + return NULL; while ((ch = inputc()) != EOF) { switch (ch) { case ' ': case '\t': case '\n':