summaryrefslogtreecommitdiffstats
path: root/utf8.c
diff options
context:
space:
mode:
authornicm <nicm>2020-05-26 12:50:03 +0000
committernicm <nicm>2020-05-26 12:50:03 +0000
commitff6f2ff6d93f05f2edf4b6e63bcf08315f3a3c73 (patch)
tree80067568fc9a759c8b4fb51cb97debb492bf0883 /utf8.c
parent392b381d1cec6d63c4baaa709243f760ff6c3403 (diff)
Return new character properly when converting to data.
Diffstat (limited to 'utf8.c')
-rw-r--r--utf8.c10
1 files 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)