From e152f22be647d5f6b4c89cd4cfd639f0482ffbbe Mon Sep 17 00:00:00 2001 From: Kaz Kylheku Date: Sat, 13 Aug 2022 22:26:35 -0700 Subject: ffi: check for out-of-range wchar_t. * ffi.c (ffi_wchar_get): Reject wchar_t values that are negative or beyond U+10FFFF; do not convert these to a character. --- ffi.c | 3 +++ 1 file changed, 3 insertions(+) (limited to 'ffi.c') diff --git a/ffi.c b/ffi.c index 5a1513a2..bf59fb1d 100644 --- a/ffi.c +++ b/ffi.c @@ -1369,6 +1369,9 @@ static val ffi_wchar_get(struct txr_ffi_type *tft, mem_t *src, val self) wchar_t c = *coerce(wchar_t *, src); (void) tft; (void) self; + if (c < 0 || c > 0x10FFFF) + uw_throwf(error_s, lit("~a: wchar_t value #x~X is out of character range"), + self, num(c), nao); return chr(c); align_sw_end; } -- cgit v1.2.3