diff options
-rw-r--r-- | src/cut.c | 4 | ||||
-rwxr-xr-x | tests/misc/cut.pl | 3 |
2 files changed, 6 insertions, 1 deletions
@@ -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=>''}], |