From: Paul O. <pa...@po...> - 2024-09-21 19:09:35
|
When running the Tcl test suite on Debian 12.6 with AddressSanitizer enabled, the following errors are issued in some tests: ==291391==ERROR: AddressSanitizer: global-buffer-overflow on address 0x7fa5ca2f2c47 at pc 0x564fa892abf0 bp 0x7ffd2dc05c20 sp 0x7ffd2dc053d0 READ of size 17 at 0x7fa5ca2f2c47 thread T0 #0 0x564fa892abef in MemcmpInterceptorCommon(void*, int (*)(void const*, void const*, unsigned long), void const*, void const*, unsigned long) (/home/obermeier/poSoft/BawtBuild-9.0.0-9.0.0-Sanitizer/Linux/x64/Debug/Build/Tcl/tcltest+0x190bef) #1 0x564fa892b288 in memcmp (/home/obermeier/poSoft/BawtBuild-9.0.0-9.0.0-Sanitizer/Linux/x64/Debug/Build/Tcl/tcltest+0x191288) #2 0x7fa5c9d01135 in Tcl_IsChannelExisting /home/obermeier/poSoft/BawtBuild-9.0.0-9.0.0-Sanitizer/Linux/x64/Debug/Build/Tcl/generic/tclIO.c:10764 #3 0x7fa5c1ac4751 in TransferEventProc generic/threadCmd.c:3530 The following change in Tcl_IsChannelExisting should solve the problem: As memcmp does not stop comparing after finding a null character, the value of chanNameLen should be either the minimum of strlen(chanName) and strlen(name) or strcmp might be used instead of memcmp. clock-ivm.test Validity default mode: off Test file error: /home/obermeier/poSoft/BawtBuild-9.0.0-9.0.0-Sanitizer/Linux/x64/Debug/Build/Tcl/generic/tclClockFmt.c:192:10: runtime error: signed integer overflow: -9223372036854775800 - 9 cannot be represented in type 'long long int' /home/obermeier/poSoft/BawtBuild-9.0.0-9.0.0-Sanitizer/Linux/x64/Debug/Build/Tcl/generic/tclClockFmt.c:182:10: runtime error: signed integer overflow: 9223372036854775800 + 8 cannot be represented in type 'long long int' /home/obermeier/poSoft/BawtBuild-9.0.0-9.0.0-Sanitizer/Linux/x64/Debug/Build/Tcl/generic/tclClockFmt.c:182:16: runtime error: signed integer overflow: 2767011611056432742 * 10 cannot be represented in type 'long long int' /home/obermeier/poSoft/BawtBuild-9.0.0-9.0.0-Sanitizer/Linux/x64/Debug/Build/Tcl/generic/tclClockFmt.c:192:16: runtime error: signed integer overflow: -2767011611056432742 * 10 cannot be represented in type 'long long int' Did not look into the details of this error message. Paul Am 20.09.2024 um 21:43 schrieb Paul Obermeier: > Here are the results of the Tcl9 test suite using my BAWT build environments: > > Operating system Arch. Compiler Errors > ----------------------------------------------------- > MacOS BigSur (11.7.10) x64 clang 13.0.0 0 > MacOS Sonoma (14.6.1) M2 clang 15.0.0 0 > Debian 12.0 x64 gcc 12.2.0 0 > Suse 15.5 x64 gcc 7.5.0 0 > Ubuntu 23.10 x64 gcc 13.2.0 0 > Raspberry Pi OS arm64 gcc 12.2.0 0 > Debian (StarFive) RiscV gcc 12.2.0 1 > Windows 11 x64 gcc 7.2.0 3 > Windows 11 x64 VS2022 3 > > StarFive errors: > ================ > > ==== binary-40.3 ScanNumber: NaN FAILED > ==== Contents of test case: > > unset -nocomplain arg1 > list [binary scan \xFF\xFF\xFF\xFF f1 arg1] $arg1 > > ---- Result was: > 1 NaN > ---- Result should have been (glob matching): > 1 -NaN* > ==== binary-40.3 FAILED > > Windows 11 errors: > ================== > > ==== fCmd-9.3 file rename: comprehensive: file to new name FAILED > ==== Contents of test case: > > createfile tf1 > createfile tf2 > testchmod 0o444 tf2 > file rename tf1 tf3 > file rename tf2 tf4 > list [lsort [glob tf*]] [file writable tf3] [file writable tf4] > > ---- Test generated error; Return code was: 1 > ---- Return code should have been one of: 0 2 > ---- errorInfo: error renaming "tf2" to "tf4": permission denied > while executing > "file rename tf2 tf4" > ("uplevel" body line 6) > invoked from within > "uplevel 1 $script" > ---- errorCode: POSIX EACCES {permission denied} > ==== fCmd-9.3 FAILED > > > ==== fCmd-9.10 file rename: comprehensive: file to new name and dir FAILED > ==== Contents of test case: > > createfile tf1 > createfile tf2 > file mkdir td1 > testchmod 0o444 tf2 > file rename tf1 [file join td1 tf3] > file rename tf2 [file join td1 tf4] > list [glob tf*] [lsort [glob -directory td1 t*]] [file writable [file join td1 tf3]] [file writable [file join td1 tf4]] > > ---- Test generated error; Return code was: 1 > ---- Return code should have been one of: 0 2 > ---- errorInfo: error renaming "tf2" to "td1/tf4": permission denied > while executing > "file rename tf2 [file join td1 tf4]" > ("uplevel" body line 7) > invoked from within > "uplevel 1 $script" > ---- errorCode: POSIX EACCES {permission denied} > ==== fCmd-9.10 FAILED > > > ==== winFCmd-3.10 TclpDeleteFile: path is readonly FAILED > ==== Contents of test case: > > createfile tf1 > testchmod 0 tf1 > testfile rm tf1 > file exists tf1 > > ---- Test generated error; Return code was: 1 > ---- Return code should have been one of: 0 2 > ---- errorInfo: EACCES > while executing > "testfile rm tf1" > ("uplevel" body line 4) > invoked from within > "uplevel 1 $script" > ---- errorCode: NONE > ==== winFCmd-3.10 FAILED > > > > Am 18.09.2024 um 21:32 schrieb Donald G Porter via Tcl-Core: >> >> Now available at >> >> https://sourceforge.net/projects/tcl/files/Tcl/9.0.0/ >> >> are RC1 candidate source code distribution pre-releases of Tcl and Tk 9.0.0 >> >> This is the second of a sequence of candidate releases leading to the release of >> Tcl/Tk 9.0.0. Testing of builds and operations on multiple platforms is invited. Open >> tickets on any problems discovered, or raise the issue in a reply to this message. >> >> The Tcl pre-release includes pre-releases of the packages Thread 3.0.0 and Itcl 4.3.1. >> The same level of vetting on them is also appreciated. The released packages >> sqlite 3.45.3 and TDBC* 1.1.9 are also included. >> >> Several fixes and improvements brought to light under examination of the RC0 >> release candidates are in these new offerings. >> >> Thank you for your contributions and assistance. >> > > > > _______________________________________________ > Tcl-Core mailing list > Tcl...@li... > https://lists.sourceforge.net/lists/listinfo/tcl-core |