From ff6f2ff6d93f05f2edf4b6e63bcf08315f3a3c73 Mon Sep 17 00:00:00 2001 From: nicm Date: Tue, 26 May 2020 12:50:03 +0000 Subject: [PATCH] Return new character properly when converting to data. --- utf8.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/utf8.c b/utf8.c index 9df74590..2a92003f 100644 --- a/utf8.c +++ b/utf8.c @@ -136,12 +136,16 @@ utf8_from_data(const struct utf8_data *ud, utf8_char *uc) u_int offset; if (ud->width != 1 && ud->width != 2) - return (utf8_space1.uc); + fatalx("invalid UTF-8 width"); + if (ud->size == 0) + fatalx("invalid UTF-8 size"); if (ud->size > UTF8_FLAG_SIZE) goto fail; - if (ud->size == 1) - return (utf8_build_one(ud->data[0], 1)); + if (ud->size == 1) { + *uc = utf8_build_one(ud->data[0], 1); + return (UTF8_DONE); + } m.flags = ud->size; if (ud->width == 2)