* This is an array of pointers to functions taking two constant void *
* pointers and returning an int.
*/
- static int (*summary_comparators[])(const void *, const void *) = {
+ int (*summary_comparators[])(const void *, const void *) = {
[user_summary_sort_arg_name] = name_comp,
[user_summary_sort_arg_uid] = uid_comp,
[user_summary_sort_arg_dir_count] = dir_count_comp,
return print_user_summary(fi);
};
ERROR_LOG("bad select mode\n");
- return -ERRNO_TO_ERROR(-EINVAL);
+ return -ERRNO_TO_ERROR(EINVAL);
}
static int open_pipe(char *path)
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;
break;
default:
ERROR_LOG("bad select mode\n");
- return -ERRNO_TO_ERROR(-EINVAL);
+ return -ERRNO_TO_ERROR(EINVAL);
};
INFO_LOG("format string: %s\n", fmt);
return parse_format_string(fmt, atoms, fi);
.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;
}