From b4ee064b539958f6a13bc9554758a106a49f4bd6 Mon Sep 17 00:00:00 2001 From: Rickard Green Date: Wed, 22 May 2019 17:51:42 +0200 Subject: Yield when validating UTF8 for long subject in re:run() --- erts/emulator/pcre/pcre_internal.h | 11 +++++++++++ 1 file changed, 11 insertions(+) (limited to 'erts/emulator/pcre/pcre_internal.h') diff --git a/erts/emulator/pcre/pcre_internal.h b/erts/emulator/pcre/pcre_internal.h index c84dcb5a38..71f473e86f 100644 --- a/erts/emulator/pcre/pcre_internal.h +++ b/erts/emulator/pcre/pcre_internal.h @@ -2756,6 +2756,17 @@ extern int PRIV(strcmp_uc_c8_utf)(const pcre_uchar *, #endif /* COMPILE_PCRE[8|16|32] */ +#if defined(ERLANG_INTEGRATION) +struct PRIV(valid_utf_ystate) { + unsigned int cnt; + int length; + int yielded; + PCRE_PUCHAR p; +}; +extern int PRIV(yielding_valid_utf)(PCRE_PUCHAR, int, int *, + struct PRIV(valid_utf_ystate) *); +#endif + extern const pcre_uchar *PRIV(find_bracket)(const pcre_uchar *, BOOL, int); extern BOOL PRIV(is_newline)(PCRE_PUCHAR, int, PCRE_PUCHAR, int *, BOOL); -- cgit v1.2.3