summaryrefslogtreecommitdiff
path: root/src/shared
diff options
context:
space:
mode:
authorDaniel Mack <daniel@zonque.org>2015-06-03 13:33:26 +0200
committerDaniel Mack <daniel@zonque.org>2015-06-03 13:54:21 +0200
commit3b51f8ddd5408eaae06e774e40144c7788748000 (patch)
tree3f84a2262447e760de177f9ef79fe70192824db6 /src/shared
parent36f5e964dedc01b685a30367b7db1fa4c71ff2f3 (diff)
downloadsystemd-3b51f8ddd5408eaae06e774e40144c7788748000.tar.gz
util: fix another cunescape() regression
Fix a regression caused by 4034a06d ("util: rework word parsing and c unescaping code") which broke octal escape sequences. The reason for this breakage is that cunescape_one() expects 4 characters in an octal encoding, which is a stray left-over from the old code which operated on different variables to make the length check. While at it, add a test case to prevent the same thing from happening again.
Diffstat (limited to 'src/shared')
-rw-r--r--src/shared/util.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/shared/util.c b/src/shared/util.c
index 8a6107969a..311acbb349 100644
--- a/src/shared/util.c
+++ b/src/shared/util.c
@@ -1152,7 +1152,7 @@ static int cunescape_one(const char *p, size_t length, char *ret, uint32_t *ret_
int a, b, c;
uint32_t m;
- if (length != (size_t) -1 && length < 4)
+ if (length != (size_t) -1 && length < 3)
return -EINVAL;
a = unoctchar(p[0]);