diff options
author | Karel Zak | 2017-11-01 15:33:04 +0100 |
---|---|---|
committer | Karel Zak | 2017-11-01 15:33:04 +0100 |
commit | 61b9233995102d89e0f9d0beed6277071bb419ea (patch) | |
tree | 9533c1d3253e1b38f38ccb1cae291503eea30475 | |
parent | dmesg: add note about -F format to the man page (diff) | |
download | kernel-qcow2-util-linux-61b9233995102d89e0f9d0beed6277071bb419ea.tar.gz kernel-qcow2-util-linux-61b9233995102d89e0f9d0beed6277071bb419ea.tar.xz kernel-qcow2-util-linux-61b9233995102d89e0f9d0beed6277071bb419ea.zip |
lib/mangle: return size of the decoded buffer
Signed-off-by: Karel Zak <kzak@redhat.com>
-rw-r--r-- | include/mangle.h | 2 | ||||
-rw-r--r-- | lib/mangle.c | 6 |
2 files changed, 5 insertions, 3 deletions
diff --git a/include/mangle.h b/include/mangle.h index ec492b556..8c3888d91 100644 --- a/include/mangle.h +++ b/include/mangle.h @@ -8,7 +8,7 @@ extern char *mangle(const char *s); extern void unmangle_to_buffer(const char *s, char *buf, size_t len); -void unhexmangle_to_buffer(const char *s, char *buf, size_t len); +extern size_t unhexmangle_to_buffer(const char *s, char *buf, size_t len); extern char *unmangle(const char *s, char **end); diff --git a/lib/mangle.c b/lib/mangle.c index 354d3359f..494360d7c 100644 --- a/lib/mangle.c +++ b/lib/mangle.c @@ -70,12 +70,13 @@ void unmangle_to_buffer(const char *s, char *buf, size_t len) *buf = '\0'; } -void unhexmangle_to_buffer(const char *s, char *buf, size_t len) +size_t unhexmangle_to_buffer(const char *s, char *buf, size_t len) { size_t sz = 0; + const char *buf0 = buf; if (!s) - return; + return 0; while(*s && sz < len - 1) { if (*s == '\\' && sz + 3 < len - 1 && s[1] == 'x' && @@ -90,6 +91,7 @@ void unhexmangle_to_buffer(const char *s, char *buf, size_t len) } } *buf = '\0'; + return buf - buf0 + 1; } static inline char *skip_nonspaces(const char *s) |