test_objagg: Uninitialized variable in error handling
authorDan Carpenter <dan.carpenter@oracle.com>
Wed, 13 Feb 2019 08:59:31 +0000 (11:59 +0300)
committerDavid S. Miller <davem@davemloft.net>
Thu, 14 Feb 2019 06:13:29 +0000 (22:13 -0800)
We need to set the error message on this path otherwise some of the
callers, such as test_hints_case(), print from an uninitialized pointer.

We had a similar bug earlier and set "errmsg" to NULL in the caller,
test_delta_action_item().  That code is no longer required so I have
removed it.

Fixes: 9069a3817d82 ("lib: objagg: implement optimization hints assembly and use hints for object creation")
Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
Acked-by: Jiri Pirko <jiri@mellanox.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
lib/test_objagg.c

index 3dd45777b13c922fc687fb8c787a37c4a2461d42..72c1abfa154dc6de0206ee000807641f2a59d617 100644 (file)
@@ -745,8 +745,10 @@ static int check_expect_stats(struct objagg *objagg,
        int err;
 
        stats = objagg_stats_get(objagg);
-       if (IS_ERR(stats))
+       if (IS_ERR(stats)) {
+               *errmsg = "objagg_stats_get() failed.";
                return PTR_ERR(stats);
+       }
        err = __check_expect_stats(stats, expect_stats, errmsg);
        objagg_stats_put(stats);
        return err;
@@ -786,7 +788,6 @@ static int test_delta_action_item(struct world *world,
        if (err)
                goto errout;
 
-       errmsg = NULL;
        err = check_expect_stats(objagg, &action_item->expect_stats, &errmsg);
        if (err) {
                pr_err("Key %u: Stats: %s\n", action_item->key_id, errmsg);