main: plug leak with --uninstalled

pull/15/head
William Pitcock 2012-05-06 21:22:40 -05:00
parent 1244724905
commit cb23f16a85
1 changed files with 8 additions and 6 deletions

14
main.c
View File

@ -233,12 +233,12 @@ print_digraph_node(pkg_t *pkg, void *unused)
} }
static void static void
exit_if_uninstalled(pkg_t *pkg, void *unused) check_uninstalled(pkg_t *pkg, void *unused)
{ {
(void) unused; int *retval = unused;
if (pkg->uninstalled) if (pkg->uninstalled)
exit (0); *retval = EXIT_SUCCESS;
} }
typedef struct pkg_queue_ { typedef struct pkg_queue_ {
@ -262,6 +262,7 @@ pkg_queue_push(pkg_queue_t *parent, const char *package)
int int
pkg_queue_walk(pkg_queue_t *head) pkg_queue_walk(pkg_queue_t *head)
{ {
int retval = EXIT_SUCCESS;
int wanted_something = 0; int wanted_something = 0;
pkg_queue_t *pkgq, *next_pkgq; pkg_queue_t *pkgq, *next_pkgq;
pkg_t world = (pkg_t){ pkg_t world = (pkg_t){
@ -294,9 +295,10 @@ pkg_queue_walk(pkg_queue_t *head)
if (want_uninstalled) if (want_uninstalled)
{ {
retval = 1;
wanted_something = 0; wanted_something = 0;
pkg_traverse(&world, exit_if_uninstalled, NULL, maximum_traverse_depth, global_traverse_flags); pkg_traverse(&world, check_uninstalled, &retval, maximum_traverse_depth, global_traverse_flags);
return 1;
} }
if (want_digraph) if (want_digraph)
@ -397,7 +399,7 @@ pkg_queue_walk(pkg_queue_t *head)
pkg_free(&world); pkg_free(&world);
return EXIT_SUCCESS; return retval;
} }
static void static void