This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
utf8.h: Don't allow zero length malformation unless requested
authorKarl Williamson <khw@cpan.org>
Sat, 10 Dec 2016 19:51:59 +0000 (12:51 -0700)
committerKarl Williamson <khw@cpan.org>
Fri, 23 Dec 2016 23:48:35 +0000 (16:48 -0700)
commit2d532c27c843a85ae0a9743642866ef4b70d1323
tree66974e06132fbeffeedd20a97fc2d685d7acfc49
parentf180b2926a9378db829862d88921feefe2460d35
utf8.h: Don't allow zero length malformation unless requested

The bottom level Perl routine that decodes UTF-8 into a code point has
long accepted inputs where the length is specified to be 0, returning a
NUL.  It considers this a malformation, which is accepted in some
scenarios, but not others.  In consultation with Tony Cook, we decided
this really isn't a malformation, but is a bug in the calling program.
Rather than call the decode routine when it has nothing to decode, it
should just not call it.

This commit removes the acceptance of a zero length string from any of
the canned flag combinations passed to the decode function.  One can
convert to specify this flag explicitly, if necessary.  However the next
commit will cause this to fail under DEBUGGING builds, as a step towards
removing the capability altogether.
utf8.h