|
@@ -384,7 +384,7 @@ static void audit_hold_skb(struct sk_buff *skb)
|
|
|
static void audit_printk_skb(struct sk_buff *skb)
|
|
|
{
|
|
|
struct nlmsghdr *nlh = nlmsg_hdr(skb);
|
|
|
- char *data = NLMSG_DATA(nlh);
|
|
|
+ char *data = nlmsg_data(nlh);
|
|
|
|
|
|
if (nlh->nlmsg_type != AUDIT_EOE) {
|
|
|
if (printk_ratelimit())
|
|
@@ -516,14 +516,15 @@ struct sk_buff *audit_make_reply(int pid, int seq, int type, int done,
|
|
|
if (!skb)
|
|
|
return NULL;
|
|
|
|
|
|
- nlh = NLMSG_NEW(skb, pid, seq, t, size, flags);
|
|
|
- data = NLMSG_DATA(nlh);
|
|
|
+ nlh = nlmsg_put(skb, pid, seq, t, size, flags);
|
|
|
+ if (!nlh)
|
|
|
+ goto out_kfree_skb;
|
|
|
+ data = nlmsg_data(nlh);
|
|
|
memcpy(data, payload, size);
|
|
|
return skb;
|
|
|
|
|
|
-nlmsg_failure: /* Used by NLMSG_NEW */
|
|
|
- if (skb)
|
|
|
- kfree_skb(skb);
|
|
|
+out_kfree_skb:
|
|
|
+ kfree_skb(skb);
|
|
|
return NULL;
|
|
|
}
|
|
|
|
|
@@ -680,7 +681,7 @@ static int audit_receive_msg(struct sk_buff *skb, struct nlmsghdr *nlh)
|
|
|
sessionid = audit_get_sessionid(current);
|
|
|
security_task_getsecid(current, &sid);
|
|
|
seq = nlh->nlmsg_seq;
|
|
|
- data = NLMSG_DATA(nlh);
|
|
|
+ data = nlmsg_data(nlh);
|
|
|
|
|
|
switch (msg_type) {
|
|
|
case AUDIT_GET:
|
|
@@ -1060,13 +1061,15 @@ static struct audit_buffer * audit_buffer_alloc(struct audit_context *ctx,
|
|
|
|
|
|
ab->skb = nlmsg_new(AUDIT_BUFSIZ, gfp_mask);
|
|
|
if (!ab->skb)
|
|
|
- goto nlmsg_failure;
|
|
|
+ goto err;
|
|
|
|
|
|
- nlh = NLMSG_NEW(ab->skb, 0, 0, type, 0, 0);
|
|
|
+ nlh = nlmsg_put(ab->skb, 0, 0, type, 0, 0);
|
|
|
+ if (!nlh)
|
|
|
+ goto out_kfree_skb;
|
|
|
|
|
|
return ab;
|
|
|
|
|
|
-nlmsg_failure: /* Used by NLMSG_NEW */
|
|
|
+out_kfree_skb:
|
|
|
kfree_skb(ab->skb);
|
|
|
ab->skb = NULL;
|
|
|
err:
|