From 112efddb6753266296cad0a9b0499528fe784214 Mon Sep 17 00:00:00 2001 From: Andre Noll Date: Sun, 5 Apr 2015 13:49:10 +0000 Subject: [PATCH] com_lsatt(): Return negative on errors --- attribute.c | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/attribute.c b/attribute.c index 7da525eb..82ac4dac 100644 --- a/attribute.c +++ b/attribute.c @@ -151,6 +151,7 @@ static int print_attribute(struct osl_table *table, struct osl_row *row, static int com_lsatt_callback(int fd, const struct osl_object *query) { + int ret; struct lsatt_action_data laad = { .flags = *(unsigned *) query->data, .pb = { @@ -177,16 +178,21 @@ static int com_lsatt_callback(int fd, const struct osl_object *query) pmd.loop_col_num = ATTCOL_NAME; if (laad.flags & LSATT_FLAG_REVERSE) pmd.pm_flags |= PM_REVERSE_LOOP; - for_each_matching_row(&pmd); + ret = for_each_matching_row(&pmd); + if (ret < 0) + goto out; + if (pmd.num_matches == 0) + ret = -E_NO_MATCH; +out: flush_and_free_pb(&laad.pb); - return 0; + return ret; } int com_lsatt(struct command_context *cc) { unsigned flags = 0; struct osl_object options = {.data = &flags, .size = sizeof(flags)}; - int ret, i; + int i; for (i = 1; i < cc->argc; i++) { const char *arg = cc->argv[i]; @@ -209,13 +215,8 @@ int com_lsatt(struct command_context *cc) continue; } } - ret = send_option_arg_callback_request(&options, cc->argc - i, cc->argv + i, + return send_option_arg_callback_request(&options, cc->argc - i, cc->argv + i, com_lsatt_callback, afs_cb_result_handler, cc); - if (ret < 0) - send_strerror(cc, -ret); - else if (ret == 0 && cc->argc > 1) - ret = send_sb_va(&cc->scc, SBD_ERROR_LOG, "no matches\n"); - return ret; } struct addatt_event_data { -- 2.39.5