pkg_parse: fix segfault when parsing descriptions with leading newlines
authorJo-Philipp Wich <jo@mein.io>
Fri, 28 Jul 2017 11:02:08 +0000 (13:02 +0200)
committerJo-Philipp Wich <jo@mein.io>
Fri, 28 Jul 2017 11:16:11 +0000 (13:16 +0200)
commit4bd8601ebd95c130e504cc724b0c5eb163050982
treee6f0d5b3e819554892d88dd2185aaa2ba07047ba
parent52fc0069b50b9be89ae3b525b98741123461dd0a
pkg_parse: fix segfault when parsing descriptions with leading newlines

During parsing of multi-line descriptions that begin with a newline
character, the description pointer will be NULL when the first
continuation line is encountered, causing the strlen() invocation
on the description pointer to segfault.

This is caused by the fact that the parse_simple() helper used for
parsing the initial description line returns NULL instead of an
empty string when encountering only whitespace after the field name.

Rework the continuation line parsing code to not assume an initialized
pointer by checking before calling strlen() and avoiding realloc()
on a NULL pointer.

Fixes FS#933.

Signed-off-by: Jo-Philipp Wich <jo@mein.io>
libopkg/pkg_parse.c