X-Git-Url: http://git.tuebingen.mpg.de/?a=blobdiff_plain;f=select.c;h=6318d7c47b67857302f8757ba7ed5ca31a175b33;hb=cd770c52180367f093dacf18572d72fe5721466c;hp=ded4a095ca751574bbfa9153d3ec61ad7aa32bb2;hpb=8230b9164cf013b77bcb86028cba43b4d0b721fa;p=adu.git diff --git a/select.c b/select.c index ded4a09..6318d7c 100644 --- a/select.c +++ b/select.c @@ -686,13 +686,12 @@ int run_select_query(struct uid_range *admissible_uids, struct format_info *fi) if (ret < 0) goto out; check_signals(); - ret = read_uid_file(admissible_uids); + ret = open_admissible_user_tables(admissible_uids); if (ret < 0) goto out; check_signals(); ret = print_statistics(fi); out: - close_all_tables(); if (output_file && output_file != stdout) { fclose(output_file); output_file = NULL; @@ -799,12 +798,16 @@ int com_select(void) .print_errors = 1 }; - select_cmdline_parser_init(&select_conf); ret = parse_select_options(conf.select_options_arg, ¶ms, &admissible_uids, &fi); - if (ret <= 0) /* do not run query if help was given */ - return ret; - ret = run_select_query(admissible_uids, fi); - free_format_info(fi); + if (ret > 0) { + ret = read_uid_file(); + if (ret < 0) + goto out; + ret = run_select_query(admissible_uids, fi); + free_format_info(fi); + } +out: + select_cmdline_parser_free(&select_conf); return ret; }