v11.0.509
-
Fixed a bug in statements like
\fcvtdate(..., -4)where there was no space between the day and the year, producing outputs likeSat Nov 262005instead ofSat Nov 26 2005. -
Fixed an out-of-bounds month lookup in shuffledate() for month values outside 1-12, and corrected off-by-one whitespace stripping in date parsing. Added unit tests for these date-handling functions.
-
Fixed an issue where SIGWINCH window-resize signals were not forwarded to child processes after running an external protocol such as Zmodem.
-
Fixed pty cleanup after external protocol execution, preventing a transfer-interrupting Ctrl-C from terminating PTY connections.
-
Fixed a bug in the telnet buffer processing loop that could cause individual or repeated 1-second stalls in certain circumstances
-
Enable SET DEBUG TIMESTAMPS during tests to help pinpoint timeouts and performance problems
-
Save off localtime() results in zdtstr()/zstrdt() to prevent mtime skew when SET DEBUG TIMESTAMPS is ON.
-
Converted tabs to spaces in the source. Inconsistent use of tabs vs. spaces was causing confusion, for humans and also possibly for gcc with -Wmisleading-indentation. This was done using the expand(1) command.
-
Ran with various warning-enable options, cleaning up warnings along the way.
-
Fixed bugs identified during the warning sweep:
- Corrected operator precedence grouping in
\femail(). - Fixed array indexing with signed
char. - Fixed uninitialized seek offsets in
FILE SEEK. - Fixed an uninitialized buffer read during DNS TXT record lookups.
- Fixed a comment-parsing defect in
cmcvtdate(). - Replaced an unbounded
vsprintf()inckxprintf()withvsnprintf()and added GCC format attributes to printf wrappers. - Fixed a potential buffer overflow in UNIX domain socket path handling in
ckcnet.c. SET DIAL TIMEOUTresetDIAL ESCAPE-CHARACTERto 43. Also, an unexpectedDIAL STRINGparameter caused control to pass toDIAL FLOW-CONTROL. These bugs introduced in C-Kermit 6.0.192 of 1996, commit 4b5edde.REPEATandCDswitch value handling could fall into handler for different commands.\funtab()with a parameter over the maximum length would fall into\funhex().FILE SEEK /FINDwithout an argument corruptedrsize.
- Corrected operator precedence grouping in