Kermit 95 1.1.20 Bug List Additions and Updates Most recent update: Sat Jan 05 10:40:20 2002 NOTE: If you experience either bug 608 or 609 with 1.1.20 please download and apply the appropriate patch for your system: Intel Windows: ftp://kermit.columbia.edu/kermit/k95/patches/i1120a.exe ftp://kermit.columbia.edu/kermit/k95/patches/wi1120a.exe Alpha Windows: ftp://kermit.columbia.edu/kermit/k95/patches/wa1120a.exe OS/2: ftp://kermit.columbia.edu/kermit/k95/patches/wo1120a.exe For all other bugs mentioned in this document, fixes have been implemented in the current test builds when indicated. Test builds are made available to registered K95 users upon request. Send a note specifying the bug you are experiencing and your registration number to kermit-support@columbia.edu. 608. RLOGIN protocol (and secure variations) does not work in 1.1.20 The previous fix to RLOGIN window size notifications (bug 605) appears to have made things worse. 609. Kerberos 5 NT Alpha 2 and previous releases do not work with 1.1.20 The pre-release versions of the Kerberos 5 libraries do not work with the initial release of 1.1.20 as they are missing necessary functionality to support the AUTH K5 INIT /NO-ADDRESSES and Hardware Pre-auth functionality. It was not intentional that older releases should no longer be usable. A future patch may restore this functionality with the limitations that /NO-ADDRESSES and Hardware Preauth cannot be used. 610. SET FILE DOWNLOAD-DIRECTORY leads to unexpected bahavior The SET FILE DOWNLOAD-DIRECTORY command when issued without a directory name could lead to very unexpected results. Instead, of clearing the download-directory it would assign a directory of the null-string. How this causes Kermit to behave is unpredictable. This was fixed in 1.1.20. 611. HOSTMODE scripts updated The HOSTMODE scripts for 1.1.20 might not be able to find either the k95.exe executable or the host.cfg file depending on how it is started. Please download: ftp://kermit.columbia.edu/kermit/k95/hostmode.ksc ftp://kermit.columbia.edu/kermit/k95/host.ksc ftp://kermit.columbia.edu/kermit/k95/hostmdm.ksc ftp://kermit.columbia.edu/kermit/k95/hostcom.ksc ftp://kermit.columbia.edu/kermit/k95/hosttcp.ksc and replace the copies in your k95\scripts\ directory. Please download: ftp://kermit.columbia.edu/kermit/k95/hostmode.bat and replace the copy in your k95\ directory. 612. Telnet Forward-X option negotiated even when an X Server not found If the telnet server requests the use of Forward-X, K95 will negotiate it even though it can't find an X Windows Server. This could lead to dual mode programs such as emacs to attempt to open an X Display when a display does not exist. To be fixed in 1.1.21. 613. Wyse 60 keyboard definitions are incorrect The table of default keyboard definitions used to initialize the strings sent by Wyse keyboard verbs is incorrect for all keys other than F1 to F16. These values are used both for initial key assignment and when resetting the key values under host command. To be fixed in 1.1.21. 614. \v(krb5errno) and \v(krb5errmsg) do not report all errors The krb5 kermit variables report the status of the last kerberos 5 library call. After some errors occur, other kerberos 5 library calls are made that clear the error values. To be corrected in 1.1.21. 615. The Dialer does not support %ENVVAR% expansion of file names The names used in fields for file names do not support the %ENVVAR% style environment variable expansion used in the .BAT batch files. Not only will this notation not work in Kermit 95 but it can cause the dialer to perform a fatal exception. 616. How to debug SET PRINTER configurations on Windows 95/98/NT/2000 The SET PRINTER command has evolved since the introduction of Kermit 95 in October 1995. The original SET PRINTER command was extremely simple SET PRINTER dos-name where dos-name could be any filename or device name that could be opened via the C run time library fopen() call. By the time 1.1.17 was released the SET PRINTER command had been modified to support piped commands, windows printer queues, and numerous configuration values for timeouts, bidirectional printing, ... The problem with 1.1.17 was that if you wanted to change the printer timeout value you would need to re-enter the entire SET PRINTER command line to respecify all of the other configuration values. So in 1.1.18 and higher, the SET PRINTER command switches are sticky. This means you can now issue a sequence of commands such as SET PRINTER /WINDOWS-QUEUE: ; or /WINDOWS: or /WIN: or /W: SET PRINTER /TIMEOUT:300 SET PRINTER /END-OF-JOB-STRING:\12 instead of combining them all on a single line. This is wonderful except that there is now confusion when using a mixture of commands. The help text for SET PRINTER states: "If you give a printer name without specifying any of these switches, then it is assumed to be a DOS printer device or filename unless the name given (after removing enclosing braces, if any) starts with '|', in which case it is a pipe." but the following sequence (in 1.1.18 through 1.1.20) SET PRINTER /WINDOWS-QUEUE: SET PRINTER PRN: does not "choose the default windows printer queue" and then "choose the DOS device PRN:". Instead this sequence is treated equivalent to SET PRINTER /WINDOWS-QUEUE PRN: which results in an invalid printer configuration since there is no windows printer queue with the name "PRN:". Not that this should be allowed either because "PRN:" is not a valid printer queue and K95 should detect that (but it does not.) This situation becomes a problem when there is a mixture of SET PRINTER commands from a variety of sources: K95CUSTOM.INI file, the Dialer Connection Script, and a keymap or login script taken by the Connection Script. For instance, if the K95CUSTOM.INI file has a: SET PRINTER /WINDOWS-QUEUE: command which selects the default Windows Printer Queue and a subsequent script contains a SET PRINTER LPT1: command using the old format, the result will be a printer configuration that does not work. If printing does not work when you expect that it should use the SHOW PRINTER command to examine the current configuration. If it looks like: [D:/kermit/src/] C-Kermit>sh print Printer: prn: /OUTPUT-ONLY /WINDOWS-QUEUE /TIMEOUT:0 /END-OF-JOB-STRING:(none) /JOB-HEADER-FILE:(none) where the printer name is correct but it is not a Windows Queue and yet the /WINDOWS-QUEUE flag is set; it means that you need to use the command form SET PRINTER /DOS-DEVICE:name when setting the printer. Track down the script which contains the: SET PRINTER name command and update it. Future releases of K95 will restore the proper functionality of the SET PRINTER name form of the command as well as confirm the validity of the name if it is a Windows Printer Queue. It should also be noted that the text describing the SET PRINTER command in the K95 HTML manual is a bit confusing because it describes the printer type switches as have the format SET PRINTER /TYPE[:] when it should be described as SET PRINTER /TYPE[:[]] where providing the colon without a name implies the default printer name of the given type. 617. RLOGIN fails to send to The field on the RLOGIN command is supposed to allow the specification of an alternate name to use on the remote host. Rlogin sends both the local and the remote names to the host. In all versions of K95 after 1.1.17 the names are swapped. RLOGIN /K5 does not allow the to be input. This will be fixed in 1.1.21. 618. -M command line option does not work The -M option is supposed to allow you to assign an alternate userid (SET LOGIN USER name) from the command line. This switch has no effect in 1.1.18 to 1.1.20. To be fixed in 1.1.21. 619. \v(exedir), \v(startupdir), \v(inidir) may have spaces in the name Not really a bug. Spaces in path names are very hard to work with in scripting languages which use whitespace as token separators. Windows provides a mechanism to determine the short names for a given path. In 1.1.21 and greater these variables will always use the shortnames instead of the long names. 620. Kermit 95 does not accept keyboard input on CJK Windows 95/98 CJK versions of Windows 95/98 do not (by default) install an Input Locale which supports any of the Latin Code Pages (CP 1250-1258). Since the Windows 95/98 Console mode does not support Unicode K95 must perform translations of all keyboard events to one of the Latin Code Pages. Without a translation table all keyboard events return error values and K95 is unable to process keyboard input. In 1.1.20 and earlier, if an Input Locale for English, German, French, ... is installed it will still appear that input cannot be processed since the default Input Locale (CJK) does not include the Latin alphabet. Pressing Left Alt-Shift one or more times until the Latin language Input Locale is selected will allow for proper processing of keyboard input. 1.1.21 and later will support the following behavior: . K95 will test each installed Input Locale until it finds one that is able to translate the letter 'a'. When it finds one that can, it stops and uses that Input Locale as the default for the session. . if no input locales are available that can properly translate the letter 'a'; Kermit 95 will terminate with an error message stating that an Input Locale must be installed. . K95 only performs this test if a user presses a key. This way if K95 is being run from a script or using stdin the test is never performed. 621. QNX terminal emulation keypad-plus and keypad-minus keys do not transmit "+" and "-" This is not a bug. This is a design decision. The QNX operating system toggles the value of the Keypad-Plus and Keypad-Minus keys when the NumLock key is pressed; Windows does not. Therefore, the keys can only have one of the two assignments. K95 uses the assignments recommended by Dan Hildebrand of QNX in his document "Terminal Control under QNX" dated Nov 14, 1991. The default mapping is to assign the SELECT function to Keypad-Plus and CANCEL to Keypad-Minus: SET TERM KEY QNX /LITERAL \363 \{255}\{167} ; SELECT SET TERM KEY QNX /LITERAL \365 \{255}\{163} ; CANCEL and to leave the "+" and "-" strings assigned to the Shifted keys: SET TERM KEY QNX \875 \{43} SET TERM KEY QNX \877 \{45} These mappings can be reversed by adding the following to the K95CUSTOM.INI file: SET TERM KEY QNX /LITERAL \875 \{255}\{167} SET TERM KEY QNX /LITERAL \877 \{255}\{163} SET TERM KEY QNX \363 \{43} SET TERM KEY QNX \365 \{45} 622. IBM 3151 unable to restore ASCII character set after Graphics character set is used. The IBM 3151 is a 7-bit terminal with two character set storage areas. Both are set to ASCII by default. Once a storage area has been set to the Graphics character set, it cannot be restored to ASCII. 623. TYPE and TRANSLATE commands only work under specific circumstances One of Kermit's strengths is its ability to handle translations between character-sets. With the release of 1.1.19 (and 1.1.20) we altered the program to use Unicode (UCS2) as the intermediate character set for all translations. Unlike traditional character-sets UCS2 requires that its data be represented in 16-bits instead of 8-bits. While this allows UCS2 to be the perfect intermediary character set since it includes all the characters in all other character sets the use of 16-bits means that the representation of the character in memory becomes dependent on the byte ordering of the underlying computer architecture: Big-Endian or Little-Endian. When the byte orders become confused the translations will be improperly performed. In 1.1.20 the TYPE command can be used for ascii text but cannot be used to display text in alternative character sets such as UTF-8, UCS2, or files from other platforms. In 1.1.20 the TRANSLATE command can be used to display files of any type to the display, but due to byte ordering issues it cannot be used to actually perform a translation without using a work around. The command translate will result in garbage. To get this to work in 1.1.20 you need to temporarily alter the byte ordering set file ucs byte-order big-endian translate filename hp-roman8 cp1252 newfilename set file ucs byte-order little-endian This is fixed in 1.1.21. 624. 1.1.20 is incompatible with Services for Unix 2.0 Telnet Server If you are using K95 to access the SFU v2 Telnet Server, do not use VTNT terminal emulation. Microsoft has altered the contents of the data structure and it is no longer compatible with the VTNT implementation in 1.1.20. This is fixed in 1.1.21. 625. Wheel Mouse Button Numbering If you have a wheel mouse, the numbering of the buttons might not be what you expect. For example, the left button might be button 3 and the wheel might be button 2. Some wheel mice allow the wheel to be clicked (or double clicked). Since the default assignment for the \Kpaste verb is Mouse Button 2 Double-Click, users of wheel mice might need to change this assignment if they want it to apply to the left mouse button. If your Control Panel has a Test Mouse feature, you can use it to find out what the button assignments are. Also see Item 265 in the main K95 Bug List. 626. Transparent Print Bug introduced in 1.1.18 Invalid escape sequences are sent to the printer without the ESC character. Fixed in 1.1.21. 627. Attempts to Add/Edit in K95 Dialer produce GPF on Windows 95/98 This may be caused by an out of memory condition in the User Resource Heap. The User Resource Heap is a limited amount of special memory (64k) into which all applications must store their GUI objects such as Windows, Buttons, List Boxes, etc. The Dialer's Edit Dialog in 1.1.20 contain over 300 window objects and requires 23k of memory. If this much memory is not available, the GPF will be produced. We do not have a workaround for this condition at this time. 628. K95 crashes on Windows 95 if SECUR32.DLL is missing Windows 95/98 come with SECUR32.DLL to provide the Security Support Provider Interface. This is a standard part of the Windows API. If this file is missing K95.EXE will crash upon startup. Fixed in 1.1.21. 629. K95 Dialer 1.1.20 dialer produces non-fatal GPF on startup On a small number of Windows 95 systems it has been reported that there is a non-fatal GPF produced in KERNEL32.DLL when the dialer is started. This has been traced to a defect in some versions of IPHLPAPI.DLL. One known version of the DLL with the problem is version 5.00.1952.1. You can download a newer version of the DLL that does not suffer the problem from ftp://kermit.columbia.edu/kermit/k95/iphlpapi.dll Either replace the file located at \WINDOWS\SYSTEM\IPHLPAPI.DLL with this newer version or place the file in the K95 directory. 630. Printer device not closed (if open) when K95 exits If K95 has a printer open when it terminates, the printer will not be properly closed. When printing to a file, this can result in the print output being truncated. This is fixed in 1.1.21. 631. Winmodems We've said it before and we'll say it again: Winmodems should not be relied upon for any serious work. For testing new dialin modem pool banks at Columbia, we have a script that repeatedly dials, logs in, uploads and downloads a 100K ZIP file, logs out, and hangs up. When this script is used with a Winmodem, the rate at which successful calls were disconnected before the data transfer phase was complete was about 13% (1700 trials). The same script run with an equivalent external (and real) modem on the same PC encountered zero (0) disconnections. Furthermore, when Winmodems are in use, they can impact your PC's performance in ways that an external modem can not: Windows freezes periodically; the keyboard buffer is scrambled, etc. 632. SRP client security hole discovered A bug in the SRP client library which opens SRP to an attack by a fraudulent server has been discovered. This is not a deficiency in the SRP authentication protocol but a programming error in the library which has been fixed as of SRP release 1.7.0. The fix for this release will be incorporated into the 1.1.21 release of K95. 633. K95 Documentation Shortcut to bugs file is incorrect The Start Menu shortcut for the Bugs file is created for the file named bugs.htm and not k95bugs.htm as it should be. 634. UPDATES.HTM file has wrong version number The 1.1.19 version of UPDATES.HTM did not get updated for 1.1.20. 1.1.20 added: . Kerberos 5 user to user authentication . support for NRL Kerberos 5 635. K95 Linux Console emulation incompatible with Red Hat 7.x AND all other new Linux distributions. Due to changes to the definition of Linux Console in the Linux Kernel built into Red Hat 7.0 and later, the K95 Linux console implementation cannot be used with 'vi' and perhaps other applications. This is corrected in 1.1.21. 636. Buffer overflow caused by long modem response messages It has been determined that a modem response message greater than or equal to 128 bytes in length will cause a buffer overflow in K95 versions released over the last several years. This is corrected in 1.1.21. 637. Failures when connecting through SOCKS server takes too long If a SOCKS server is being used, and the SOCKS server has multiple IP addresses, and access to the desired host is denied or otherwise unavailable, then K95 would attempt to connect the SOCKS server's alternate IP addresses as if they belonged to the desired host. This is fixed in 1.1.21. 638. Can't start K95 from a DOS Prompt or from with a DOS application If you can't start K95.EXE from within a DOS Prompt or a DOS application it is most likely because that session is configured to prevent it. See: Cannot Start a Windows-Based Program from MS-DOS Prompt http://support.microsoft.com/support/kb/articles/Q134/4/89.asp Apparently, some versions of Windows 98 Second Edition have the [x] Prevent MS-DOS based programs from detecting Windows? flag set in the _Default.PIF configuration program. The bizarre side-effect of this is that our SETUP.EXE program which is 32-bits cannot start sub-processes (eg, K95PACK.EXE) because COMMAND.COM is executed by the system() command. COMMAND.COM being an MS-DOS based program. 639. K95.EXE when started from dialer complains about invalid command line parameters (Windows 2000/XP) The dialer uses the TEMP or TMP variables to determine where to create the temporary connection scripts used by K95.EXE to connect to a host. If the path contains spaces a command line of the form k95.exe c:\temp path\script.ksc is created. Since the filename is not surrounded by quotes K95.EXE treats the command line as two parameters; one of which is illegal. This is fixed in 1.1.21. 640. K95D.EXE stops accepting new connections after several hundred or thousand incoming connections. K95D.EXE contains a resource leak. Handles to the Process and primary thread spawned when starting K95.EXE were never closed. Windows eventually runs out of Handles or Process space. This prevents additional K95.EXE sessions from being spawned until the K95D.EXE process is shutdown and restarted. 641. SET FILE COLLISION BACKUP fails on some file names but not others On Windows 95/98/ME, there is a strange behavior in the CreateFile() API when given the OPEN_ALWAYS flag. It is supposed to return ERROR_ALREADY_EXISTS when the file exists. Unfortunately, this is not always the case. When this bug is triggered, the filename being received will have both an original and backup file created with a 0 file length. In 1.1.21, k95 will no longer rely on the documented behavior. 642. SET TAPI MODEM-DIALING ON can cause scripting to fail A just discovered bug which has been present since version 1.1.3 can result in scripting commands such as INPUT and OUTPUT to fail if a SET SPEED command was not executed after the SET TAPI LINE which opened the device. This is fixed in the next release. 643. Dialer direct-serial configurations vs. Hardware Parity The dialer when configured to use a direct serial connection will fail to output SET STOP-BITS defaulting to 1; and will fail to output SET PARITY if the setting is "Even_8Bytes", "Odd_8bytes", "Mark_8bytes", "Space_8bytes". 644. Windows XP default location causes K95.EXE to crash on startup In Windows XP, the default location is not fully specified to the application. K95.EXE does not check for an incomplete location and will crash on startup if one is found. This bug is fixed in 1.1.21. Workaround: Use the "Phone and Modem Options" control panel to create a location. (End of newbugs.txt)