summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/split.c6
-rwxr-xr-xtests/split/filter3
2 files changed, 9 insertions, 0 deletions
diff --git a/src/split.c b/src/split.c
index 5e203f1b7..9e23f8689 100644
--- a/src/split.c
+++ b/src/split.c
@@ -1175,6 +1175,12 @@ main (int argc, char **argv)
}
}
+ if (k_units != 0 && filter_command)
+ {
+ error (0, 0, _("--filter does not process a chunk extracted to stdout"));
+ usage (EXIT_FAILURE);
+ }
+
/* Handle default case. */
if (split_type == type_undef)
{
diff --git a/tests/split/filter b/tests/split/filter
index a42c5539e..5bc54581f 100755
--- a/tests/split/filter
+++ b/tests/split/filter
@@ -43,6 +43,9 @@ done
split -e -n 10 --filter='xz > $FILE.xz' /dev/null || fail=1
stat x?? 2>/dev/null && fail=1
+# Ensure this invalid combination is flagged
+split -n 1/2 --filter='true' /dev/null 2>/dev/null && fail=1
+
# Ensure SIGPIPEs sent by the children don't propagate back
# where they would result in a non zero exit from split.
yes | head -n200K | split -b1G --filter='head -c1 >/dev/null' || fail=1