digitalmars.D.bugs - [Issue 22867] New: std.utf.decode changes offset despite error.
- d-bugmail puremagic.com (33/33) Mar 10 2022 https://issues.dlang.org/show_bug.cgi?id=22867
https://issues.dlang.org/show_bug.cgi?id=22867 Issue ID: 22867 Summary: std.utf.decode changes offset despite error. Product: D Version: D2 Hardware: x86_64 OS: Linux Status: NEW Severity: normal Priority: P1 Component: phobos Assignee: nobody puremagic.com Reporter: default_357-line yahoo.de The documentation for `decode` states: "If the code point is not well-formed, then a UTFException is thrown and index remains unchanged." However, fuzzing with /dev/urandom found that this import std.conv; import std.format; import std.utf; void main() { string data = hexString!"f787a598"; size_t offset = 0; try { data.decode(offset); } catch (UTFException ex) { assert(offset == 0, "offset changed to %s despite exception %s".format(offset, ex.msg)); } } fails. --
Mar 10 2022