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)
committerMatthias Schiffer <mschiffer@universe-factory.net>
Mon, 23 Oct 2017 21:30:10 +0000 (23:30 +0200)
commitc6caf07212150f5ec3b0c5f895c496452f9b1e21
tree47b9d92c6dda2d1c47869f3f74d3a31bb9c14a99
parent5bb5fd551cbf7d6e642c1e331beef11f60319561
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