From: Karel Zak Date: Mon, 6 May 2013 15:20:03 +0000 (+0200) Subject: libblkid: fix blkid_parse_tag_string() to ignore incomplete tags X-Git-Tag: v2.24-rc1~574 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=aab691cf8deb4a53782a0317b6f96c5d8b61f8e9;p=thirdparty%2Futil-linux.git libblkid: fix blkid_parse_tag_string() to ignore incomplete tags fstab entry: FOO= / btrfs defaults 1 1 Program received signal SIGABRT, Aborted. 0x00007f016ccd8819 in __GI_raise (sig=sig@entry=6) at ../nptl/sysdeps/unix/sysv/linux/raise.c:56 56 return INLINE_SYSCALL (tgkill, 3, pid, selftid, sig); (gdb) bt at ../sysdeps/unix/sysv/linux/libc_fatal.c:196 Reported-by: Kay Sievers Signed-off-by: Karel Zak --- diff --git a/libblkid/src/tag.c b/libblkid/src/tag.c index 9cfd61769c..3a70950137 100644 --- a/libblkid/src/tag.c +++ b/libblkid/src/tag.c @@ -237,8 +237,7 @@ int blkid_parse_tag_string(const char *token, char **ret_type, char **ret_val) goto errout; /* missing closing quote */ *cp = '\0'; } - if (value && *value) - value = strdup(value); + value = value && *value ? strdup(value) : NULL; if (!value) goto errout; @@ -250,6 +249,7 @@ int blkid_parse_tag_string(const char *token, char **ret_type, char **ret_val) return 0; errout: + DBG(TAG, blkid_debug("parse error: '%s'", token)); free(name); return -1; }