Tcl Source Code

View Ticket
Login
Ticket UUID: 293344d4f3e07f7f9da93db4b967abed8122bd42
Title: Regression in SQLite test-suite
Type: Bug Version: core-8-6-branch
Submitter: jan.nijtmans Created on: 2017-07-13 15:00:42
Subsystem: - New Builtin Commands Assigned To: nobody
Priority: 5 Medium Severity: Minor
Status: Closed Last Modified: 2017-07-13 15:08:55
Resolution: Fixed Closed By: jan.nijtmans
    Closed on: 2017-07-13 15:08:55
Description:

When running the latest SQLite test-suite there was a regression in 2 test-cases, one of them: badutf2-4.1.5... ! badutf2-4.1.5 expected: [\u0080] ! badutf2-4.1.5 got: [\uFF80]

bisecting Tcl pointed to commit [7351fc0c9c], but - actually - there's nothing wrong with this commit. Further investigation resulted in the observation that the macro TclUtfToUniChar() contained a mistake: If 'str' points to a signed character (which it normally does), a character in the range \x80-\xC0 results in an unicode character in the range \xFF80-\xFFC0 ... this is clearly wrong.

Conclusion: this is a long-standing bug in the TclUtfToUniChar() macro, which was never discovered because there was no test-case touching this. Commit [7351fc0c9c] merely exposed this bug in the SQLite test-suite.

User Comments: jan.nijtmans added on 2017-07-13 15:08:55:
Fixed in core-8-5-branch, core-8-6-branch and trunk