xargs: fix exit code if command exits nonzero, closes 11381
No code size change on x86. Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
This commit is contained in:
parent
c8e3922ad8
commit
f3e2838fc4
@ -204,14 +204,15 @@ static int xargs_exec(void)
|
|||||||
status = (errno == ENOENT) ? 127 : 126;
|
status = (errno == ENOENT) ? 127 : 126;
|
||||||
}
|
}
|
||||||
else if (status >= 0x180) {
|
else if (status >= 0x180) {
|
||||||
bb_error_msg("'%s' terminated by signal %d",
|
bb_error_msg("'%s' terminated by signal %u",
|
||||||
G.args[0], status - 0x180);
|
G.args[0], status - 0x180);
|
||||||
status = 125;
|
status = 125;
|
||||||
}
|
}
|
||||||
else if (status != 0) {
|
else if (status != 0) {
|
||||||
if (status == 255) {
|
if (status == 255) {
|
||||||
bb_error_msg("%s: exited with status 255; aborting", G.args[0]);
|
bb_error_msg("%s: exited with status 255; aborting", G.args[0]);
|
||||||
return 124;
|
status = 124;
|
||||||
|
goto ret;
|
||||||
}
|
}
|
||||||
/* "123 if any invocation of the command exited with status 1-125"
|
/* "123 if any invocation of the command exited with status 1-125"
|
||||||
* This implies that nonzero exit code is remembered,
|
* This implies that nonzero exit code is remembered,
|
||||||
@ -220,7 +221,7 @@ static int xargs_exec(void)
|
|||||||
G.xargs_exitcode = 123;
|
G.xargs_exitcode = 123;
|
||||||
status = 0;
|
status = 0;
|
||||||
}
|
}
|
||||||
|
ret:
|
||||||
if (status != 0)
|
if (status != 0)
|
||||||
G.xargs_exitcode = status;
|
G.xargs_exitcode = status;
|
||||||
return status;
|
return status;
|
||||||
|
Loading…
Reference in New Issue
Block a user