audit: use struct_size() helper in audit_[send|make]_reply()
authorXiu Jianfeng <xiujianfeng@huawei.com>
Fri, 17 Dec 2021 01:01:51 +0000 (09:01 +0800)
committerPaul Moore <paul@paul-moore.com>
Mon, 20 Dec 2021 19:42:11 +0000 (14:42 -0500)
Make use of struct_size() helper instead of an open-coded calculation.

Link: https://github.com/KSPP/linux/issues/160
Signed-off-by: Xiu Jianfeng <xiujianfeng@huawei.com>
Signed-off-by: Paul Moore <paul@paul-moore.com>
kernel/audit.c
kernel/auditfilter.c

index 3dd8bde2c00f6eb26540563663d595e124512bc1..bc21d5007047100447ee8ef413b82c4e26293fc8 100644 (file)
@@ -1459,7 +1459,7 @@ static int audit_receive_msg(struct sk_buff *skb, struct nlmsghdr *nlh)
                        security_release_secctx(ctx, len);
                }
                audit_send_reply(skb, seq, AUDIT_SIGNAL_INFO, 0, 0,
-                                sig_data, sizeof(*sig_data) + len);
+                                sig_data, struct_size(sig_data, ctx, len));
                kfree(sig_data);
                break;
        case AUDIT_TTY_GET: {
index 398b4c57e92147ce51b14777c8f23f4d557f1717..1bbe25f47c1723c0a8c46581ad78130b70d7bc04 100644 (file)
@@ -1092,7 +1092,7 @@ static void audit_list_rules(int seq, struct sk_buff_head *q)
                                break;
                        skb = audit_make_reply(seq, AUDIT_LIST_RULES, 0, 1,
                                               data,
-                                              sizeof(*data) + data->buflen);
+                                              struct_size(data, buf, data->buflen));
                        if (skb)
                                skb_queue_tail(q, skb);
                        kfree(data);