summaryrefslogtreecommitdiffstats
path: root/lib/mangle.c
diff options
context:
space:
mode:
authorKarel Zak2010-08-05 13:14:58 +0200
committerKarel Zak2011-01-03 12:28:40 +0100
commit7a539b29af600e1adb1f48f4772a41c2e5e95e42 (patch)
treed8caa327c766c3ddf0cc09aff0314bb9ca025611 /lib/mangle.c
parentlibmount: correctly use "none" values (diff)
downloadkernel-qcow2-util-linux-7a539b29af600e1adb1f48f4772a41c2e5e95e42.tar.gz
kernel-qcow2-util-linux-7a539b29af600e1adb1f48f4772a41c2e5e95e42.tar.xz
kernel-qcow2-util-linux-7a539b29af600e1adb1f48f4772a41c2e5e95e42.zip
lib: fix mange() and unmangle() to handle NULL
Signed-off-by: Karel Zak <kzak@redhat.com>
Diffstat (limited to 'lib/mangle.c')
-rw-r--r--lib/mangle.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/lib/mangle.c b/lib/mangle.c
index c40e67bad..e320cfb7c 100644
--- a/lib/mangle.c
+++ b/lib/mangle.c
@@ -21,6 +21,9 @@ char *mangle(const char *s)
char *ss, *sp;
int n;
+ if (!s)
+ return NULL;
+
n = strlen(s);
ss = sp = malloc(4*n+1);
if (!sp)
@@ -48,6 +51,9 @@ void unmangle_to_buffer(const char *s, char *buf, size_t len)
{
size_t sz = 0;
+ if (!s)
+ return;
+
while(*s && sz < len - 1) {
if (*s == '\\' && sz + 4 < len - 1 && isoctal(s[1]) &&
isoctal(s[2]) && isoctal(s[3])) {
@@ -79,6 +85,9 @@ char *unmangle(const char *s)
const char *end;
size_t sz;
+ if (!s)
+ return NULL;
+
end = skip_nonspaces(s);
sz = end - s + 1;