diff options
| author | Ron Yorston <rmy@pobox.com> | 2024-10-22 09:15:18 +0100 |
|---|---|---|
| committer | Ron Yorston <rmy@pobox.com> | 2024-10-22 09:15:18 +0100 |
| commit | b2ad30bab23920704a34dc39b16db6fd5d91ea1e (patch) | |
| tree | bbcf8eaabd995478f8e1eb3f66a43d22dc25320d /coreutils | |
| parent | f0dea66749bb599f65762991f4fded229c3df5a3 (diff) | |
| download | busybox-w32-b2ad30bab23920704a34dc39b16db6fd5d91ea1e.tar.gz busybox-w32-b2ad30bab23920704a34dc39b16db6fd5d91ea1e.tar.bz2 busybox-w32-b2ad30bab23920704a34dc39b16db6fd5d91ea1e.zip | |
cut: detect error when bounds are reversed
The command 'cut -b 3-2' failed to detect that the bounds were
incorrectly ordered, though the check worked when the difference
between the bounds was larger.
The comparison was made after the lower bound has been decremented
but before the upper bound had.
Adds 0-16 bytes.
(GitHub issue #467)
Diffstat (limited to 'coreutils')
| -rw-r--r-- | coreutils/cut.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/coreutils/cut.c b/coreutils/cut.c index 067e69b12..8cae2eca3 100644 --- a/coreutils/cut.c +++ b/coreutils/cut.c | |||
| @@ -291,9 +291,16 @@ int cut_main(int argc UNUSED_PARAM, char **argv) | |||
| 291 | * that means "til the end of the line" */ | 291 | * that means "til the end of the line" */ |
| 292 | if (!*ltok) | 292 | if (!*ltok) |
| 293 | e = INT_MAX; | 293 | e = INT_MAX; |
| 294 | #if !ENABLE_PLATFORM_MINGW32 | ||
| 294 | else if (e < s) | 295 | else if (e < s) |
| 295 | bb_error_msg_and_die("%d<%d", e, s); | 296 | bb_error_msg_and_die("%d<%d", e, s); |
| 296 | e--; /* again, arrays are zero based, lines are 1 based */ | 297 | e--; /* again, arrays are zero based, lines are 1 based */ |
| 298 | #else | ||
| 299 | else if (e != 0) | ||
| 300 | e--; /* again, zero based arrays, one based lines */ | ||
| 301 | if (e < s) | ||
| 302 | bb_error_msg_and_die("%d<%d", e, s); | ||
| 303 | #endif | ||
| 297 | } | 304 | } |
| 298 | 305 | ||
| 299 | /* add the new list */ | 306 | /* add the new list */ |
