This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Add UTF8_CHK_SKIP() macro
authorKarl Williamson <khw@cpan.org>
Wed, 9 Oct 2019 16:02:31 +0000 (10:02 -0600)
committerKarl Williamson <khw@cpan.org>
Wed, 9 Oct 2019 16:19:21 +0000 (10:19 -0600)
commitee0ff0f58536ba7975a4b8f1d21309ae9f451df7
tree1fada1b5c31569d52adac373dbc55834de43c52a
parenta281f16cacceabade4e75fbbbeb567285d462ba0
Add UTF8_CHK_SKIP() macro

This is a safer version of UTF8SKIP for use when the input could be
possibly malformed.  It uses strnlen() to not read past a NUL in the
input.  Since Perl adds NULs to the end of SV's, this will likely
prevent reading beyond the end of a buffer.

A still safer version could be written that doesn't look for just a NUL,
but any unexpected byte, and stops just before that.  I suspect that is
overkill, and since strnlen() can be very fast, I went with this
approach instead.  Nothing precludes adding another version that does
this full checking
utf8.h