summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHarald Hoyer <harald@redhat.com>2015-06-03 15:55:28 +0200
committerHarald Hoyer <harald@redhat.com>2015-06-03 15:55:28 +0200
commitea344aec104771c11b2008e54943d7c108ecb0d0 (patch)
tree038b6e6f53bc372f5c12c21cd7631fb74e383ef1
parent1a435084b7f55bc24042f9bc47c18e4e2381f667 (diff)
parent3b51f8ddd5408eaae06e774e40144c7788748000 (diff)
Merge pull request #51 from zonque/unquote
util: fix another cunescape() regression compiled and test-util exited with 0
-rw-r--r--src/shared/util.c2
-rw-r--r--src/test/test-util.c3
2 files changed, 4 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]);
diff --git a/src/test/test-util.c b/src/test/test-util.c
index e0269821d7..7a398fafbe 100644
--- a/src/test/test-util.c
+++ b/src/test/test-util.c
@@ -460,6 +460,9 @@ static void test_cunescape(void) {
assert_se(cunescape("\\u0000", 0, &unescaped) < 0);
assert_se(cunescape("\\u00DF\\U000000df\\u03a0\\U00000041", UNESCAPE_RELAX, &unescaped) >= 0);
assert_se(streq_ptr(unescaped, "ßßΠA"));
+
+ assert_se(cunescape("\\073", 0, &unescaped) >= 0);
+ assert_se(streq_ptr(unescaped, ";"));
}
static void test_foreach_word(void) {