diff options
author | Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> | 2019-02-26 12:37:40 +0100 |
---|---|---|
committer | Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> | 2019-02-26 12:37:40 +0100 |
commit | 92e068b465299d5d88fe480bc5cf2bf4bd750516 (patch) | |
tree | c1156c20ae1252a6482996a3f6bc6bfb6a0da9de /src/basic/device-nodes.c | |
parent | 84319aa76e744c501d62052cc233e44dc48ece8a (diff) | |
download | systemd-92e068b465299d5d88fe480bc5cf2bf4bd750516.tar.gz |
basic/utf8: do not read past end of string when looking for a multi-byte character
Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=9341.
Diffstat (limited to 'src/basic/device-nodes.c')
-rw-r--r-- | src/basic/device-nodes.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/src/basic/device-nodes.c b/src/basic/device-nodes.c index 5fcdf24bd2..5ebe5b2483 100644 --- a/src/basic/device-nodes.c +++ b/src/basic/device-nodes.c @@ -28,7 +28,7 @@ int encode_devnode_name(const char *str, char *str_enc, size_t len) { for (i = 0, j = 0; str[i] != '\0'; i++) { int seqlen; - seqlen = utf8_encoded_valid_unichar(&str[i]); + seqlen = utf8_encoded_valid_unichar(str + i, (size_t) -1); if (seqlen > 1) { if (len-j < (size_t)seqlen) |