summaryrefslogtreecommitdiff
path: root/src/shared/util.c
diff options
context:
space:
mode:
authorLennart Poettering <lennart@poettering.net>2015-04-10 11:56:04 +0200
committerLennart Poettering <lennart@poettering.net>2015-04-10 11:56:04 +0200
commit8ebac1f9a681ce1c6287e7c6a1b3093b00fb0c5a (patch)
tree6dfc1c0affd1048fee05168f82dd0cf83269eb3d /src/shared/util.c
parentf3ee629711783333005c41e21d66841268b80f70 (diff)
util: fix unicode decoding in unquote_first_word()
Diffstat (limited to 'src/shared/util.c')
-rw-r--r--src/shared/util.c12
1 files changed, 6 insertions, 6 deletions
diff --git a/src/shared/util.c b/src/shared/util.c
index 2385224fbb..61f3090e20 100644
--- a/src/shared/util.c
+++ b/src/shared/util.c
@@ -7284,7 +7284,7 @@ int unquote_first_word(const char **p, char **ret, UnquoteFlags flags) {
return -EINVAL;
}
- if (!GREEDY_REALLOC(s, allocated, sz+2))
+ if (!GREEDY_REALLOC(s, allocated, sz+7))
return -ENOMEM;
if (flags & UNQUOTE_CUNESCAPE) {
@@ -7299,7 +7299,7 @@ int unquote_first_word(const char **p, char **ret, UnquoteFlags flags) {
if (c != 0)
s[sz++] = c; /* normal explicit char */
else
- sz += utf8_encode_unichar(s, u); /* unicode chars we'll encode as utf8 */
+ sz += utf8_encode_unichar(s + sz, u); /* unicode chars we'll encode as utf8 */
} else
s[sz++] = c;
@@ -7331,7 +7331,7 @@ int unquote_first_word(const char **p, char **ret, UnquoteFlags flags) {
return -EINVAL;
}
- if (!GREEDY_REALLOC(s, allocated, sz+2))
+ if (!GREEDY_REALLOC(s, allocated, sz+7))
return -ENOMEM;
if (flags & UNQUOTE_CUNESCAPE) {
@@ -7346,7 +7346,7 @@ int unquote_first_word(const char **p, char **ret, UnquoteFlags flags) {
if (c != 0)
s[sz++] = c;
else
- sz += utf8_encode_unichar(s, u);
+ sz += utf8_encode_unichar(s + sz, u);
} else
s[sz++] = c;
@@ -7376,7 +7376,7 @@ int unquote_first_word(const char **p, char **ret, UnquoteFlags flags) {
return -EINVAL;
}
- if (!GREEDY_REALLOC(s, allocated, sz+2))
+ if (!GREEDY_REALLOC(s, allocated, sz+7))
return -ENOMEM;
if (flags & UNQUOTE_CUNESCAPE) {
@@ -7391,7 +7391,7 @@ int unquote_first_word(const char **p, char **ret, UnquoteFlags flags) {
if (c != 0)
s[sz++] = c;
else
- sz += utf8_encode_unichar(s, u);
+ sz += utf8_encode_unichar(s + sz, u);
} else
s[sz++] = c;