Looks good to me, except one tiny flaw.
diff --git a/src/plugins/reporter-bugzilla.c b/src/plugins/reporter-bugzilla.c
index 972a1f0..965faf4 100644
--- a/src/plugins/reporter-bugzilla.c
+++ b/src/plugins/reporter-bugzilla.c
+ environ = getenv("Bugzilla_PrivateGroups");
+ b->b_private_groups = parse_list(environ ? environ :
get_map_string_item_or_empty(settings, "Bugzilla_CreatePrivate"));
b->b_private_groups can be already populated by the list of groups from command line,
so you should free it before
+ VERB1 log("groups: '%p'", b->b_private_groups);
}