drbd: Fix future possible NULL pointer dereference
authorAndreas Gruenbacher <agruen@linbit.com>
Wed, 19 Feb 2014 09:49:07 +0000 (10:49 +0100)
committerJens Axboe <axboe@fb.com>
Fri, 21 Feb 2014 23:42:34 +0000 (15:42 -0800)
Right now every resource has exactly one connection. But we are preparing
for dynamic connections. I.e. in the future thre can be resources without
connections.

However smatch points this out as 'variable dereferenced before check',
which is correct.

This issue was introduced in
drbd: get_one_status(): Iterate over resource->devices instead of connection->peer_devices

Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: Andreas Gruenbacher <agruen@linbit.com>
Signed-off-by: Philipp Reisner <philipp.reisner@linbit.com>
Signed-off-by: Jens Axboe <axboe@fb.com>
drivers/block/drbd/drbd_nl.c

index 2086b12..526414b 100644 (file)
@@ -2776,7 +2776,7 @@ static int nla_put_drbd_cfg_context(struct sk_buff *skb,
        if (device &&
            nla_put_u32(skb, T_ctx_volume, device->vnr))
                goto nla_put_failure;
-       if (nla_put_string(skb, T_ctx_resource_name, connection->resource->name))
+       if (nla_put_string(skb, T_ctx_resource_name, resource->name))
                goto nla_put_failure;
        if (connection) {
                if (connection->my_addr_len &&