Latest upstream release: 20220122 Current version/release in rawhide: 20180827 URL: https://github.com/onetrueawk/awk - Detailed changelog: December 8, 2021: The error handling in closefile and closeall was mangled. Long standing warnings had been made fatal and some fatal errors went undetected. Thanks to Miguel Pineiro Jr. <mpj>. Nov 03, 2021: getline accesses uninitialized data after getrec() returns 0 on EOF and leaves the contents of buf unchanged. Thanks to Volodymyr Gubarkov, and Todd C Miller. Oct 12, 2021: The fix for #83 changed the code to insert 2 chars, but the call to adjbuf just above it only allows for 1 char. This can cause a heap buffer overflow. July 27, 2021: As per IEEE Std 1003.1-2008, -F "str" is now consistent with -v FS="str" when str is null. Thanks to Warner Losh. July 24, 2021: Fix readrec's definition of a record. This fixes an issue with NetBSD's RS regular expression support that can cause an infinite read loop. Thanks to Miguel Pineiro Jr. Fix regular expression RS ^-anchoring. RS ^-anchoring needs to know if it is reading the first record of a file. This change restores a missing line that was overlooked when porting NetBSD's RS regex functionality. Thanks to Miguel Pineiro Jr. Fix size computation in replace_repeat() for special case REPEAT_WITH_Q. Thanks to Todd C. Miller. February 15, 2021: Small fix so that awk will compile again with g++. Thanks to Arnold Robbins. January 06, 2021: Fix a decision bug with trailing stuff in lib.c:is_valid_number after recent changes. Thanks to Ozan Yigit. December 18, 2020: Fix problems converting inf and NaN values in lib.c:is_valid_number. Enhance number to string conversion to do the right thing for NaN and inf values. Things are now pretty much the same as in gawk. (Found a gawk bug while we're at it.) Added a torture test for these values. Thanks to Arnold Robbins. Allows closing of PR #101. December 15, 2020: Merge PR #99, which gets the right header for strcasecmp. Thanks to GitHub user michaelforney. December 8, 2020: Merge PR #98: Disallow hex data. Allow only +nan, -nan, +inf, -inf (case independent) to give NaN and infinity values. Improve things so that string to double conversion is only done once, yielding something of a speedup. This obviate PR #95. Thanks to Arnold Robbins. December 3, 2020: Fix to argument parsing to avoid printing spurious newlines. Thanks to Todd Miller. Merges PR #97. October 13, 2020: Add casts before all the calls to malloc/calloc/realloc in order to get it to compile with g++. Thanks to Arnold Robbins. August 16, 2020: Additional fixes for DJGPP. Thanks to Eli Zaretskii for the testing. August 7, 2020: Merge PR #93, which adds casts to (void*) for debug prints using the %p format specifier. Thanks to GitHub user YongHaoWu ("Chris") for the fixes. August 4, 2020: In run.c, use non-restartable multibyte routines to attain portability to DJGPP. Should fix Issue 92. Thanks to Albert Wik for the report and to Todd Miller for the suggested fix. July 30, 2020: Merge PRs 88-91 which fix small bugs. Thanks to Todd Miller and Tim van der Molen for the fixes. In order to make life easier, we move exclusively to bison as the parser generator. July 2, 2020: Merge PRs 85 and 86 which fix regressions. Thanks to Tim van der Molen for the fixes. June 25, 2020: Merge PRs 82 and 84. The latter fixes issue #83. Thanks to Todd Miller and awkfan77. June 12, 2020: Clear errno before calling errcheck to avoid any spurious errors left over from previous calls that may have set it. Thanks to Todd Miller for the fix, from PR #80. Fix Issue #78 by allowing \r to follow floating point numbers in lib.c:is_number. Thanks to GitHub user ajcarr for the report and to Arnold Robbins for the fix. June 5, 2020: In fldbld(), make sure that inputFS is set before trying to use it. Thanks to Steffen Nurpmeso <steffen> for the report. May 5, 2020: Fix checks for compilers that can handle noreturn. Thanks to GitHub user enh-google for pointing it out. Closes Issue #79. April 16, 2020: Handle old compilers that don't support C11 (for noreturn). Thanks to Arnold Robbins. April 5, 2020: Use <stdnoreturn.h> and noreturn instead of GCC attributes. Thanks to GitHub user awkfan77. Closes PR #77. February 28, 2020: More cleanups from Christos Zoulas: notably backslash continuation inside strings removes the newline and a fix for RS = "^a". Fix for address sanitizer-found problem. Thanks to GitHub user enh-google. February 19, 2020: More small cleanups from Christos Zoulas. February 18, 2020: Additional cleanups from Christos Zoulas. It's no longer necessary to use the -y flag to bison. February 6, 2020: Additional small cleanups from Christos Zoulas. awk is now a little more robust about reporting I/O errors upon exit. January 31, 2020: Merge PR #70, which avoids use of variable length arrays. Thanks to GitHub user michaelforney. Fix issue #60 ({0} in interval expressions doesn't work). Also get all tests working again. Thanks to Arnold Robbins. January 24, 2020: A number of small cleanups from Christos Zoulas. Add the close on exec flag to files/pipes opened for redirection; courtesy of Arnold Robbins. January 19, 2020: If POSIXLY_CORRECT is set in the environment, then sub and gsub use POSIX rules for multiple backslashes. This fixes Issue #66, while maintaining backwards compatibility. January 9, 2020: Input/output errors on closing files are now fatal instead of mere warnings. Thanks to Martijn Dekker <martijn>. January 5, 2020: Fix a bug in the concatentation of two string constants into one done in the grammar. Fixes GitHub issue #61. Thanks to GitHub user awkfan77 for pointing out the direction for the fix. New test T.concat added to the test suite. Fix a few memory leaks reported by valgrind, as well. December 27, 2019: Fix a bug whereby a{0,3} could match four a's. Thanks to "Anonymous AWK fan" for the report. December 11, 2019: Further printf-related fixes for 32 bit systems. Thanks again to Christos Zoulas. December 8, 2019: Fix the return value of sprintf("%d") on 32 bit systems. Thanks to Jim Lowe for the report and to Christos Zoulas for the fix. November 10, 2019: Convert a number of Boolean integer variables into actual bools. Convert compile_time variable into an enum and simplify some of the related code. Thanks to Arnold Robbins. November 8, 2019: Fix from Ori Bernstein to get UTF-8 characters instead of bytes when FS = "". This is currently the only bit of the One True Awk that understands multibyte characters. From Arnold Robbins, apply some cleanups in the test suite. October 25, 2019: More fixes and cleanups from NetBSD, courtesy of Christos Zoulas. Merges PRs 54 and 55. October 24, 2019: Import second round of code cleanups from NetBSD. Much thanks to Christos Zoulas (GitHub user zoulasc). Merges PR 53. Add an optimization for string concatenation, also from Christos. October 17, 2019: Import code cleanups from NetBSD. Much thanks to Christos Zoulas (GitHub user zoulasc). Merges PR 51. October 6, 2019: Import code from NetBSD awk that implements RS as a regular expression. September 10, 2019: Fixes for various array / memory overruns found via gcc's -fsanitize=unknown. Thanks to Alexander Richardson (GitHub user arichardson). Merges PRs 47 and 48. July 28, 2019: Import grammar optimization from NetBSD: Two string constants concatenated together get turned into a single string. July 26, 2019: Support POSIX-specified C-style escape sequences "\a" (alarm) and "\v" (vertical tab) in command line arguments and regular expressions, further to the support for them in strings added on Apr 9, 1989. These now no longer match as literal "a" and "v" characters (as they don't on other awk implementations). Thanks to Martijn Dekker. July 17, 2019: Pull in a number of code cleanups and minor fixes from Warner Losh's bsd-ota branch. The only user visible change is the use of random(3) as the random number generator. Thanks to Warner Losh for collecting all these fixes in one easy place to get them from. July 16, 2019: Fix field splitting to use FS value as of the time a record was read or assigned to. Thanks to GitHub user Cody Mello (melloc) for the fix. (Merged from his branch, via PR #42.) Updated testdir/T.split per said PR as well. June 24, 2019: Extract awktest.tar into testdir directory. Add some very simple mechanics to the makefile for running the tests and for cleaning up. No changes to awk itself. June 17, 2019: Disallow deleting SYMTAB and its elements, which creates use-after-free bugs. Thanks to GitHub user Cody Mello (melloc) for the fix. (Merged from PR #43.) June 5, 2019: Allow unmatched right parenthesis in a regular expression to be treated literally. Fixes Issue #40. Thanks to GitHub user Warner Losh (bsdimp) for the report. Thanks to Arnold Robbins for the fix. May 29,2019: Fix check for command line arguments to no longer require that first character after '=' not be another '='. Reverts change of August 11, 1989. Thanks to GitHub user Jamie Landeg Jones for pointing out the issue; from Issue #38. Apr 7, 2019: Update awktest.tar(p.50) to use modern options to sort. Needed for Android development. Thanks to GitHub user mohd-akram (Mohamed Akram). From Issue #33. Mar 12, 2019: Added very simplistic support for cross-compiling in the makefile. We are NOT going to go in the direction of the autotools, though. Thanks to GitHub user nee-san for the basic change. (Merged from PR #34.) Mar 5, 2019: Added support for POSIX-standard interval expressions (a.k.a. bounds, a.k.a. repetition expressions) in regular expressions, backported (via NetBSD) from Apple awk-24 (20070501). Thanks to Martijn Dekker <martijn> for the port. (Merged from PR #30.) Mar 3, 2019: Merge PRs as follows: #12: Avoid undefined behaviour when using ctype(3) functions in relex(). Thanks to GitHub user iamleot. #31: Make getline handle numeric strings, and update FIXES. Thanks to GitHub user arnoldrobbins. #32: maketab: support build systems with read-only source. Thanks to GitHub user enh. Jan 25, 2019: Make getline handle numeric strings properly in all cases. (Thanks, Arnold.) Jan 21, 2019: Merged a number of small fixes from GitHub pull requests. Thanks to GitHub users Arnold Robbins (arnoldrobbins), Cody Mello (melloc) and Christoph Junghans (junghans). PR numbers: 13-21, 23, 24, 27. Oct 25, 2018: Added test in maketab.c to prevent generating a proctab entry for YYSTYPE_IS_DEFINED. It was harmless but some gcc settings generated a warning message. Thanks to Nan Xiao for report.
This bug appears to have been reported against 'rawhide' during the Fedora Linux 37 development cycle. Changing version to 37.
This bug appears to have been reported against 'rawhide' during the Fedora Linux 38 development cycle. Changing version to 38.
This bug appears to have been reported against 'rawhide' during the Fedora Linux 39 development cycle. Changing version to 39.