diff options
author | Andrew J. Schorr <aschorr@telemetry-investments.com> | 2017-05-24 09:49:29 -0400 |
---|---|---|
committer | Andrew J. Schorr <aschorr@telemetry-investments.com> | 2017-05-24 09:49:29 -0400 |
commit | 6163a2b1d5bdc76c395f5c7c1d0d8ef445011357 (patch) | |
tree | d03d51dc96fc1e056de342500bf28103aaaad1a8 | |
parent | 21f45911879abbaf5933c65df1beac8399b30038 (diff) | |
download | egawk-6163a2b1d5bdc76c395f5c7c1d0d8ef445011357.tar.gz egawk-6163a2b1d5bdc76c395f5c7c1d0d8ef445011357.tar.bz2 egawk-6163a2b1d5bdc76c395f5c7c1d0d8ef445011357.zip |
FIELDWIDTHS parsing should protect against blanks after skip separator, and fix field number in error message.
-rw-r--r-- | ChangeLog | 7 | ||||
-rw-r--r-- | field.c | 4 | ||||
-rw-r--r-- | test/ChangeLog | 5 | ||||
-rw-r--r-- | test/fwtest8.ok | 2 |
4 files changed, 15 insertions, 3 deletions
@@ -1,3 +1,10 @@ +2017-05-24 Andrew J. Schorr <aschorr@telemetry-investments.com> + + * field.c (set_FIELDWIDTHS): Add check to protect against blank + characters after a `:' skip separator. + Fix field number in error message, thanks to a bug report + from Michal Jaegermann. + 2017-05-23 Andrew J. Schorr <aschorr@telemetry-investments.com> * field.c (set_FIELDWIDTHS): Simplify the logic and consistentify @@ -1182,7 +1182,7 @@ set_FIELDWIDTHS() if (errno == 0 && *end == ':' && (0 < tmp && tmp <= UINT_MAX)) { FIELDWIDTHS->fields[i].skip = tmp; scan = end + 1; - if (*scan == '-') { + if (*scan == '-' || is_blank(*scan)) { fatal_error = true; break; } @@ -1223,7 +1223,7 @@ set_FIELDWIDTHS() if (fatal_error) fatal(_("invalid FIELDWIDTHS value, for field %d, near `%s'"), - i, scan); + i + 1, scan); } /* set_FS --- handle things when FS is assigned to */ diff --git a/test/ChangeLog b/test/ChangeLog index aef98225..0d8978fe 100644 --- a/test/ChangeLog +++ b/test/ChangeLog @@ -1,3 +1,8 @@ +2017-05-24 Andrew J. Schorr <aschorr@telemetry-investments.com> + + * fwtest8.ok: Fix field number in error message, thanks to a bug + report from Michal Jaegermann. + 2017-05-23 Arnold D. Robbins <arnold@skeeve.com> * Makefile.am (fwtest5, fwtest6, fwtest7, fwtest8): New tests. diff --git a/test/fwtest8.ok b/test/fwtest8.ok index 8a685a83..8ecd1678 100644 --- a/test/fwtest8.ok +++ b/test/fwtest8.ok @@ -1,2 +1,2 @@ -gawk: fwtest8.awk:1: fatal: invalid FIELDWIDTHS value, for field 1, near `-1 4' +gawk: fwtest8.awk:1: fatal: invalid FIELDWIDTHS value, for field 2, near `-1 4' EXIT CODE: 2 |