From 9ad13ad14ac50b7b7fe57ff3265494b38e15281c Mon Sep 17 00:00:00 2001 From: Pádraig Brady Date: Sun, 7 Nov 2010 03:09:38 +0000 Subject: split: fail immediately if impossible to create a large file * src/split.c (main): Error if -[bC] value > OFF_T_MAX * tests/misc/split-fail: Adjust for the new lower limits --- src/split.c | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'src/split.c') diff --git a/src/split.c b/src/split.c index 61ae265d8..a391ecc12 100644 --- a/src/split.c +++ b/src/split.c @@ -432,6 +432,13 @@ main (int argc, char **argv) error (0, 0, _("%s: invalid number of bytes"), optarg); usage (EXIT_FAILURE); } + /* If input is a pipe, we could get more data than is possible + to write to a single file, so indicate that immediately + rather than having possibly future invocations fail. */ + if (OFF_T_MAX < n_units) + error (EXIT_FAILURE, EFBIG, + _("%s: invalid number of bytes"), optarg); + break; case 'l': @@ -456,6 +463,9 @@ main (int argc, char **argv) error (0, 0, _("%s: invalid number of bytes"), optarg); usage (EXIT_FAILURE); } + if (OFF_T_MAX < n_units) + error (EXIT_FAILURE, EFBIG, + _("%s: invalid number of bytes"), optarg); break; case '0': -- cgit v1.2.3-54-g00ecf