Radish alpha
H
HardenedBSD Package Manager
Radicle
Git (anonymous pull)
Log in to clone via SSH
Return an error instead of segfault.
jlaffaye committed 14 years ago
commit f6547195c456a83c3f419be71f5b025e893f3ddf
parent 3ad27c247c8983b60c48ddc2b24b71a3650b645e
1 file changed +8 -2
modified libpkg/pkg_manifest.c
@@ -211,16 +211,22 @@ pkg_parse_manifest(struct pkg *pkg, char *buf)
{
	yaml_parser_t parser;
	yaml_document_t doc;
+
	yaml_node_t *node;
+
	int retcode = EPKG_OK;

	yaml_parser_initialize(&parser);
	yaml_parser_set_input_string(&parser, buf, strlen(buf));
	yaml_parser_load(&parser, &doc);

-
	parse_node(pkg, yaml_document_get_root_node(&doc), &doc, -1);
+
	node = yaml_document_get_root_node(&doc);
+
	if (node != NULL)
+
		parse_node(pkg, node, &doc, -1);
+
	else
+
		retcode = EPKG_FATAL;

	yaml_parser_delete(&parser);

-
	return EPKG_OK;
+
	return retcode;
}

static int