March 10, 2022 [Issue 22867] New: std.utf.decode changes offset despite error. | ||||
|---|---|---|---|---|
| ||||
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. -- | ||||
Copyright © 1999-2021 by the D Language Foundation
Permalink
Reply