Loading net/netlink/af_netlink.c +3 −0 Original line number Diff line number Diff line Loading @@ -232,6 +232,9 @@ static int __netlink_deliver_tap_skb(struct sk_buff *skb, struct sock *sk = skb->sk; int ret = -ENOMEM; if (!net_eq(dev_net(dev), sock_net(sk))) return 0; dev_hold(dev); if (is_vmalloc_addr(skb->head)) Loading security/keys/encrypted-keys/encrypted.c +15 −16 Original line number Diff line number Diff line Loading @@ -141,23 +141,22 @@ static int valid_ecryptfs_desc(const char *ecryptfs_desc) */ static int valid_master_desc(const char *new_desc, const char *orig_desc) { if (!memcmp(new_desc, KEY_TRUSTED_PREFIX, KEY_TRUSTED_PREFIX_LEN)) { if (strlen(new_desc) == KEY_TRUSTED_PREFIX_LEN) goto out; if (orig_desc) if (memcmp(new_desc, orig_desc, KEY_TRUSTED_PREFIX_LEN)) goto out; } else if (!memcmp(new_desc, KEY_USER_PREFIX, KEY_USER_PREFIX_LEN)) { if (strlen(new_desc) == KEY_USER_PREFIX_LEN) goto out; if (orig_desc) if (memcmp(new_desc, orig_desc, KEY_USER_PREFIX_LEN)) goto out; } else goto out; return 0; out: int prefix_len; if (!strncmp(new_desc, KEY_TRUSTED_PREFIX, KEY_TRUSTED_PREFIX_LEN)) prefix_len = KEY_TRUSTED_PREFIX_LEN; else if (!strncmp(new_desc, KEY_USER_PREFIX, KEY_USER_PREFIX_LEN)) prefix_len = KEY_USER_PREFIX_LEN; else return -EINVAL; if (!new_desc[prefix_len]) return -EINVAL; if (orig_desc && strncmp(new_desc, orig_desc, prefix_len)) return -EINVAL; return 0; } /* Loading Loading
net/netlink/af_netlink.c +3 −0 Original line number Diff line number Diff line Loading @@ -232,6 +232,9 @@ static int __netlink_deliver_tap_skb(struct sk_buff *skb, struct sock *sk = skb->sk; int ret = -ENOMEM; if (!net_eq(dev_net(dev), sock_net(sk))) return 0; dev_hold(dev); if (is_vmalloc_addr(skb->head)) Loading
security/keys/encrypted-keys/encrypted.c +15 −16 Original line number Diff line number Diff line Loading @@ -141,23 +141,22 @@ static int valid_ecryptfs_desc(const char *ecryptfs_desc) */ static int valid_master_desc(const char *new_desc, const char *orig_desc) { if (!memcmp(new_desc, KEY_TRUSTED_PREFIX, KEY_TRUSTED_PREFIX_LEN)) { if (strlen(new_desc) == KEY_TRUSTED_PREFIX_LEN) goto out; if (orig_desc) if (memcmp(new_desc, orig_desc, KEY_TRUSTED_PREFIX_LEN)) goto out; } else if (!memcmp(new_desc, KEY_USER_PREFIX, KEY_USER_PREFIX_LEN)) { if (strlen(new_desc) == KEY_USER_PREFIX_LEN) goto out; if (orig_desc) if (memcmp(new_desc, orig_desc, KEY_USER_PREFIX_LEN)) goto out; } else goto out; return 0; out: int prefix_len; if (!strncmp(new_desc, KEY_TRUSTED_PREFIX, KEY_TRUSTED_PREFIX_LEN)) prefix_len = KEY_TRUSTED_PREFIX_LEN; else if (!strncmp(new_desc, KEY_USER_PREFIX, KEY_USER_PREFIX_LEN)) prefix_len = KEY_USER_PREFIX_LEN; else return -EINVAL; if (!new_desc[prefix_len]) return -EINVAL; if (orig_desc && strncmp(new_desc, orig_desc, prefix_len)) return -EINVAL; return 0; } /* Loading