ini: Do not crash on incorrect property value

When the value of the 'name_regexp' property is incorrect, the ini
parser can crash.

Pancake, of Radare2 fame, reported this one by email.

Fixed thus.

	* src/abg-ini.cc (read_context::read_property_value): Do not
	dereference a null pointer to list property value.
	* tests/data/test-ini/test02-buggy-property-value.abignore: New
	test input.
	* tests/data/test-ini/test02-buggy-property-value.abignore.expected:
	Likewise.
	* tests/data/Makefile.am: Add the two new test inputs to source
	distribution.
	* tests/test-ini.cc (in_out_spec): Add the new test input pair to
	this test harness.

Signed-off-by: Dodji Seketeli <dodji@redhat.com>
This commit is contained in:
Dodji Seketeli 2023-04-26 22:19:35 +02:00
parent d8e7c7ce6d
commit 1392a720a8
5 changed files with 11 additions and 1 deletions

View File

@ -1353,7 +1353,7 @@ public:
}
list_property_value_sptr list = read_list_property_value();
if (list->get_content().size() == 1)
if (list && list->get_content().size() == 1)
result.reset(new string_property_value(list->get_content()[0]));
else
result = list;

View File

@ -2328,6 +2328,8 @@ test-fedabipkgdiff/nss-util/nss-util-3.24.0-2.0.fc25.x86_64.rpm \
\
test-ini/test01-equal-in-property-string.abignore.expected \
test-ini/test01-equal-in-property-string.abignore \
test-ini/test02-buggy-property-value.abignore \
test-ini/test02-buggy-property-value.abignore.expected \
\
test-kmi-whitelist/whitelist-with-single-entry \
test-kmi-whitelist/whitelist-with-another-single-entry \

View File

@ -0,0 +1,2 @@
[suppress_function]
name_regexp = [

View File

@ -48,6 +48,12 @@ InOutSpec in_out_specs[] =
"output/test-ini/test01-equal-in-property-string.abignore",
""
}
{
"data/test-ini/test02-buggy-property-value.abignore",
"data/test-ini/test02-buggy-property-value.abignore.expected",
"output/test-ini/test02-buggy-property-value.abignore",
""
}
,
// This one must always remain the last one.
{0, 0, 0, 0}