summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/cut.c4
-rwxr-xr-xtests/misc/cut.pl3
2 files changed, 6 insertions, 1 deletions
diff --git a/src/cut.c b/src/cut.c
index 36172c061..494aad772 100644
--- a/src/cut.c
+++ b/src/cut.c
@@ -530,7 +530,9 @@ set_fields (const char *fieldstr)
if (output_delimiter_specified
&& !complement
&& eol_range_start
- && max_range_endpoint && !is_printable_field (eol_range_start))
+ && max_range_endpoint
+ && (max_range_endpoint < eol_range_start
+ || !is_printable_field (eol_range_start)))
mark_range_start (eol_range_start);
free (rp);
diff --git a/tests/misc/cut.pl b/tests/misc/cut.pl
index 874c16900..41e9e2093 100755
--- a/tests/misc/cut.pl
+++ b/tests/misc/cut.pl
@@ -193,6 +193,9 @@ my @Tests =
['inval6', '-f', '-1,-', {IN=>''}, {OUT=>''}, {EXIT=>1}, {ERR=>$no_endpoint}],
# This would evoke a segfault from 5.3.0..8.10
['big-unbounded-b', '--output-d=:', '-b1234567890-', {IN=>''}, {OUT=>''}],
+ ['big-unbounded-b2a', '--output-d=:', '-b1,9-', {IN=>'123456789'},
+ {OUT=>"1:9\n"}],
+ ['big-unbounded-b2b', '--output-d=:', '-b1,1234567890-', {IN=>''}, {OUT=>''}],
['big-unbounded-c', '--output-d=:', '-c1234567890-', {IN=>''}, {OUT=>''}],
['big-unbounded-f', '--output-d=:', '-f1234567890-', {IN=>''}, {OUT=>''}],