mirror of
git://git.sv.gnu.org/coreutils.git
synced 2026-07-26 02:30:35 +02:00
cut: fix a segfault with disjoint open ended ranges
Fixes the issue introduced in unreleased commit v8.20-60-gec48bea. * src/cut.c (set_fields): Don't access the bit array if we've an open ended range that's outside any finite range. * tests/misc/cut.pl: Add tests for this case. Reported by Marcel Böhme in http://bugs.gnu.org/13627
This commit is contained in:
@@ -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);
|
||||
|
||||
@@ -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=>''}],
|
||||
|
||||
|
||||
Reference in New Issue
Block a user