Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
home:Ledest:erlang:23
erlang
1250-Eliminate-crash-in-matching-of-utf32-segme...
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File 1250-Eliminate-crash-in-matching-of-utf32-segment.patch of Package erlang
From 5a1fbccf0128042aa1ae04b6ce7da08da992daf9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Gustavsson?= <bjorn@erlang.org> Date: Mon, 24 Apr 2023 07:57:09 +0200 Subject: [PATCH] Eliminate crash in matching of utf32 segment --- erts/emulator/beam/emu/ops.tab | 4 ++++ erts/emulator/beam/jit/x86/ops.tab | 4 ++++ erts/emulator/test/bs_utf_SUITE.erl | 4 ++++ 3 files changed, 12 insertions(+) diff --git a/erts/emulator/beam/ops.tab b/erts/emulator/beam/ops.tab index 28cee5cd36..d1469f05d6 100644 --- a/erts/emulator/beam/ops.tab +++ b/erts/emulator/beam/ops.tab @@ -1208,6 +1208,10 @@ bs_skip_utf16 Fail=f Ms=xy Unit=u Flags=u => bs_get_utf16 Fail Ms Unit Flags x i_bs_get_utf16 xy f? t d +bs_get_utf32 Fail=f Ms=xy Live=u Flags=u Ms=d => \ + bs_get_integer2 Fail Ms Live i=32 u=1 Flags x | \ + i_bs_validate_unicode_retract Fail x Ms | \ + move x Ms bs_get_utf32 Fail=f Ms=xy Live=u Flags=u Dst=d => \ bs_get_integer2 Fail Ms Live i=32 u=1 Flags Dst | \ i_bs_validate_unicode_retract Fail Dst Ms diff --git a/erts/emulator/test/bs_utf_SUITE.erl b/erts/emulator/test/bs_utf_SUITE.erl index a344f5c456..8885b31324 100644 --- a/erts/emulator/test/bs_utf_SUITE.erl +++ b/erts/emulator/test/bs_utf_SUITE.erl @@ -272,6 +272,10 @@ utf32_illegal_sequences(Config) when is_list(Config) -> utf32_fail_range(16#10FFFF+1, 16#10FFFF+512), %Too large. utf32_fail_range(16#D800, 16#DFFF), %Reserved for UTF-16. utf32_fail_range(-100, -1), + + <<>> = id(<< 0 || <<X/utf32>> <= <<"àxxx">>, _ = X >>), + <<>> = id(<< 0 || <<X/little-utf32>> <= <<"àxxx">>, _ = X >>), + ok. utf32_fail_range(Char, End) when Char =< End -> -- 2.35.3
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor