From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
To: stable@vger.kernel.org
Cc: "Greg Kroah-Hartman" <gregkh@linuxfoundation.org>,
patches@lists.linux.dev,
"Qualys Security Advisory" <qsa@qualys.com>,
"Georgia Garcia" <georgia.garcia@canonical.com>,
"Maxime Bélair" <maxime.belair@canonical.com>,
"Cengiz Can" <cengiz.can@canonical.com>,
"John Johansen" <john.johansen@canonical.com>
Subject: [PATCH 6.12 260/265] apparmor: fix race between freeing data and fs accessing it
Date: Thu, 12 Mar 2026 21:10:47 +0100 [thread overview]
Message-ID: <20260312201027.741584503@linuxfoundation.org> (raw)
In-Reply-To: <20260312201018.128816016@linuxfoundation.org>
6.12-stable review patch. If anyone has any objections, please let me know.
------------------
From: John Johansen <john.johansen@canonical.com>
commit 8e135b8aee5a06c52a4347a5a6d51223c6f36ba3 upstream.
AppArmor was putting the reference to i_private data on its end after
removing the original entry from the file system. However the inode
can aand does live beyond that point and it is possible that some of
the fs call back functions will be invoked after the reference has
been put, which results in a race between freeing the data and
accessing it through the fs.
While the rawdata/loaddata is the most likely candidate to fail the
race, as it has the fewest references. If properly crafted it might be
possible to trigger a race for the other types stored in i_private.
Fix this by moving the put of i_private referenced data to the correct
place which is during inode eviction.
Fixes: c961ee5f21b20 ("apparmor: convert from securityfs to apparmorfs for policy ns files")
Reported-by: Qualys Security Advisory <qsa@qualys.com>
Reviewed-by: Georgia Garcia <georgia.garcia@canonical.com>
Reviewed-by: Maxime Bélair <maxime.belair@canonical.com>
Reviewed-by: Cengiz Can <cengiz.can@canonical.com>
Signed-off-by: John Johansen <john.johansen@canonical.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
security/apparmor/apparmorfs.c | 194 +++++++++++++++++-------------
security/apparmor/include/label.h | 16 +-
security/apparmor/include/lib.h | 12 +
security/apparmor/include/policy.h | 8 -
security/apparmor/include/policy_unpack.h | 6
security/apparmor/label.c | 12 +
security/apparmor/policy_unpack.c | 6
7 files changed, 153 insertions(+), 101 deletions(-)
--- a/security/apparmor/apparmorfs.c
+++ b/security/apparmor/apparmorfs.c
@@ -32,6 +32,7 @@
#include "include/crypto.h"
#include "include/ipc.h"
#include "include/label.h"
+#include "include/lib.h"
#include "include/policy.h"
#include "include/policy_ns.h"
#include "include/resource.h"
@@ -62,6 +63,7 @@
* securityfs and apparmorfs filesystems.
*/
+#define IREF_POISON 101
/*
* support fns
@@ -153,6 +155,71 @@ static int aafs_show_path(struct seq_fil
return 0;
}
+static struct aa_ns *get_ns_common_ref(struct aa_common_ref *ref)
+{
+ if (ref) {
+ struct aa_label *reflabel = container_of(ref, struct aa_label,
+ count);
+ return aa_get_ns(labels_ns(reflabel));
+ }
+
+ return NULL;
+}
+
+static struct aa_proxy *get_proxy_common_ref(struct aa_common_ref *ref)
+{
+ if (ref)
+ return aa_get_proxy(container_of(ref, struct aa_proxy, count));
+
+ return NULL;
+}
+
+static struct aa_loaddata *get_loaddata_common_ref(struct aa_common_ref *ref)
+{
+ if (ref)
+ return aa_get_i_loaddata(container_of(ref, struct aa_loaddata,
+ count));
+ return NULL;
+}
+
+static void aa_put_common_ref(struct aa_common_ref *ref)
+{
+ if (!ref)
+ return;
+
+ switch (ref->reftype) {
+ case REF_RAWDATA:
+ aa_put_i_loaddata(container_of(ref, struct aa_loaddata,
+ count));
+ break;
+ case REF_PROXY:
+ aa_put_proxy(container_of(ref, struct aa_proxy,
+ count));
+ break;
+ case REF_NS:
+ /* ns count is held on its unconfined label */
+ aa_put_ns(labels_ns(container_of(ref, struct aa_label, count)));
+ break;
+ default:
+ AA_BUG(true, "unknown refcount type");
+ break;
+ }
+}
+
+static void aa_get_common_ref(struct aa_common_ref *ref)
+{
+ kref_get(&ref->count);
+}
+
+static void aafs_evict(struct inode *inode)
+{
+ struct aa_common_ref *ref = inode->i_private;
+
+ clear_inode(inode);
+ aa_put_common_ref(ref);
+ inode->i_private = (void *) IREF_POISON;
+}
+
static void aafs_free_inode(struct inode *inode)
{
if (S_ISLNK(inode->i_mode))
@@ -162,6 +229,7 @@ static void aafs_free_inode(struct inode
static const struct super_operations aafs_super_ops = {
.statfs = simple_statfs,
+ .evict_inode = aafs_evict,
.free_inode = aafs_free_inode,
.show_path = aafs_show_path,
};
@@ -262,7 +330,8 @@ static int __aafs_setup_d_inode(struct i
* aafs_remove(). Will return ERR_PTR on failure.
*/
static struct dentry *aafs_create(const char *name, umode_t mode,
- struct dentry *parent, void *data, void *link,
+ struct dentry *parent,
+ struct aa_common_ref *data, void *link,
const struct file_operations *fops,
const struct inode_operations *iops)
{
@@ -299,6 +368,9 @@ static struct dentry *aafs_create(const
goto fail_dentry;
inode_unlock(dir);
+ if (data)
+ aa_get_common_ref(data);
+
return dentry;
fail_dentry:
@@ -323,7 +395,8 @@ fail_lock:
* see aafs_create
*/
static struct dentry *aafs_create_file(const char *name, umode_t mode,
- struct dentry *parent, void *data,
+ struct dentry *parent,
+ struct aa_common_ref *data,
const struct file_operations *fops)
{
return aafs_create(name, mode, parent, data, NULL, fops, NULL);
@@ -448,7 +521,7 @@ end_section:
static ssize_t profile_load(struct file *f, const char __user *buf, size_t size,
loff_t *pos)
{
- struct aa_ns *ns = aa_get_ns(f->f_inode->i_private);
+ struct aa_ns *ns = get_ns_common_ref(f->f_inode->i_private);
int error = policy_update(AA_MAY_LOAD_POLICY, buf, size, pos, ns,
f->f_cred);
@@ -466,7 +539,7 @@ static const struct file_operations aa_f
static ssize_t profile_replace(struct file *f, const char __user *buf,
size_t size, loff_t *pos)
{
- struct aa_ns *ns = aa_get_ns(f->f_inode->i_private);
+ struct aa_ns *ns = get_ns_common_ref(f->f_inode->i_private);
int error = policy_update(AA_MAY_LOAD_POLICY | AA_MAY_REPLACE_POLICY,
buf, size, pos, ns, f->f_cred);
aa_put_ns(ns);
@@ -486,7 +559,7 @@ static ssize_t profile_remove(struct fil
struct aa_loaddata *data;
struct aa_label *label;
ssize_t error;
- struct aa_ns *ns = aa_get_ns(f->f_inode->i_private);
+ struct aa_ns *ns = get_ns_common_ref(f->f_inode->i_private);
label = begin_current_label_crit_section();
/* high level check about policy management - fine grained in
@@ -576,7 +649,7 @@ static int ns_revision_open(struct inode
if (!rev)
return -ENOMEM;
- rev->ns = aa_get_ns(inode->i_private);
+ rev->ns = get_ns_common_ref(inode->i_private);
if (!rev->ns)
rev->ns = aa_get_current_ns();
file->private_data = rev;
@@ -1054,7 +1127,7 @@ static const struct file_operations seq_
static int seq_profile_open(struct inode *inode, struct file *file,
int (*show)(struct seq_file *, void *))
{
- struct aa_proxy *proxy = aa_get_proxy(inode->i_private);
+ struct aa_proxy *proxy = get_proxy_common_ref(inode->i_private);
int error = single_open(file, show, proxy);
if (error) {
@@ -1246,7 +1319,7 @@ static const struct file_operations seq_
static int seq_rawdata_open(struct inode *inode, struct file *file,
int (*show)(struct seq_file *, void *))
{
- struct aa_loaddata *data = aa_get_i_loaddata(inode->i_private);
+ struct aa_loaddata *data = get_loaddata_common_ref(inode->i_private);
int error;
if (!data)
@@ -1379,7 +1452,7 @@ static int rawdata_open(struct inode *in
if (!aa_current_policy_view_capable(NULL))
return -EACCES;
- loaddata = aa_get_i_loaddata(inode->i_private);
+ loaddata = get_loaddata_common_ref(inode->i_private);
if (!loaddata)
return -ENOENT;
@@ -1424,7 +1497,6 @@ static void remove_rawdata_dents(struct
if (!IS_ERR_OR_NULL(rawdata->dents[i])) {
aafs_remove(rawdata->dents[i]);
rawdata->dents[i] = NULL;
- aa_put_i_loaddata(rawdata);
}
}
}
@@ -1463,45 +1535,41 @@ int __aa_fs_create_rawdata(struct aa_ns
if (IS_ERR(dir))
/* ->name freed when rawdata freed */
return PTR_ERR(dir);
- aa_get_i_loaddata(rawdata);
rawdata->dents[AAFS_LOADDATA_DIR] = dir;
- dent = aafs_create_file("abi", S_IFREG | 0444, dir, rawdata,
+ dent = aafs_create_file("abi", S_IFREG | 0444, dir, &rawdata->count,
&seq_rawdata_abi_fops);
if (IS_ERR(dent))
goto fail;
- aa_get_i_loaddata(rawdata);
rawdata->dents[AAFS_LOADDATA_ABI] = dent;
- dent = aafs_create_file("revision", S_IFREG | 0444, dir, rawdata,
- &seq_rawdata_revision_fops);
+ dent = aafs_create_file("revision", S_IFREG | 0444, dir,
+ &rawdata->count,
+ &seq_rawdata_revision_fops);
if (IS_ERR(dent))
goto fail;
- aa_get_i_loaddata(rawdata);
rawdata->dents[AAFS_LOADDATA_REVISION] = dent;
if (aa_g_hash_policy) {
dent = aafs_create_file("sha256", S_IFREG | 0444, dir,
- rawdata, &seq_rawdata_hash_fops);
+ &rawdata->count,
+ &seq_rawdata_hash_fops);
if (IS_ERR(dent))
goto fail;
- aa_get_i_loaddata(rawdata);
rawdata->dents[AAFS_LOADDATA_HASH] = dent;
}
dent = aafs_create_file("compressed_size", S_IFREG | 0444, dir,
- rawdata,
+ &rawdata->count,
&seq_rawdata_compressed_size_fops);
if (IS_ERR(dent))
goto fail;
- aa_get_i_loaddata(rawdata);
rawdata->dents[AAFS_LOADDATA_COMPRESSED_SIZE] = dent;
- dent = aafs_create_file("raw_data", S_IFREG | 0444,
- dir, rawdata, &rawdata_fops);
+ dent = aafs_create_file("raw_data", S_IFREG | 0444, dir,
+ &rawdata->count, &rawdata_fops);
if (IS_ERR(dent))
goto fail;
- aa_get_i_loaddata(rawdata);
rawdata->dents[AAFS_LOADDATA_DATA] = dent;
d_inode(dent)->i_size = rawdata->size;
@@ -1512,7 +1580,6 @@ int __aa_fs_create_rawdata(struct aa_ns
fail:
remove_rawdata_dents(rawdata);
- aa_put_i_loaddata(rawdata);
return PTR_ERR(dent);
}
#endif /* CONFIG_SECURITY_APPARMOR_EXPORT_BINARY */
@@ -1536,13 +1603,10 @@ void __aafs_profile_rmdir(struct aa_prof
__aafs_profile_rmdir(child);
for (i = AAFS_PROF_SIZEOF - 1; i >= 0; --i) {
- struct aa_proxy *proxy;
if (!profile->dents[i])
continue;
- proxy = d_inode(profile->dents[i])->i_private;
aafs_remove(profile->dents[i]);
- aa_put_proxy(proxy);
profile->dents[i] = NULL;
}
}
@@ -1576,14 +1640,7 @@ static struct dentry *create_profile_fil
struct aa_profile *profile,
const struct file_operations *fops)
{
- struct aa_proxy *proxy = aa_get_proxy(profile->label.proxy);
- struct dentry *dent;
-
- dent = aafs_create_file(name, S_IFREG | 0444, dir, proxy, fops);
- if (IS_ERR(dent))
- aa_put_proxy(proxy);
-
- return dent;
+ return aafs_create_file(name, S_IFREG | 0444, dir, &profile->label.proxy->count, fops);
}
#ifdef CONFIG_SECURITY_APPARMOR_EXPORT_BINARY
@@ -1629,7 +1686,8 @@ static const char *rawdata_get_link_base
struct delayed_call *done,
const char *name)
{
- struct aa_proxy *proxy = inode->i_private;
+ struct aa_common_ref *ref = inode->i_private;
+ struct aa_proxy *proxy = container_of(ref, struct aa_proxy, count);
struct aa_label *label;
struct aa_profile *profile;
char *target;
@@ -1771,27 +1829,24 @@ int __aafs_profile_mkdir(struct aa_profi
if (profile->rawdata) {
if (aa_g_hash_policy) {
dent = aafs_create("raw_sha256", S_IFLNK | 0444, dir,
- profile->label.proxy, NULL, NULL,
- &rawdata_link_sha256_iops);
+ &profile->label.proxy->count, NULL,
+ NULL, &rawdata_link_sha256_iops);
if (IS_ERR(dent))
goto fail;
- aa_get_proxy(profile->label.proxy);
profile->dents[AAFS_PROF_RAW_HASH] = dent;
}
dent = aafs_create("raw_abi", S_IFLNK | 0444, dir,
- profile->label.proxy, NULL, NULL,
+ &profile->label.proxy->count, NULL, NULL,
&rawdata_link_abi_iops);
if (IS_ERR(dent))
goto fail;
- aa_get_proxy(profile->label.proxy);
profile->dents[AAFS_PROF_RAW_ABI] = dent;
dent = aafs_create("raw_data", S_IFLNK | 0444, dir,
- profile->label.proxy, NULL, NULL,
+ &profile->label.proxy->count, NULL, NULL,
&rawdata_link_data_iops);
if (IS_ERR(dent))
goto fail;
- aa_get_proxy(profile->label.proxy);
profile->dents[AAFS_PROF_RAW_DATA] = dent;
}
#endif /*CONFIG_SECURITY_APPARMOR_EXPORT_BINARY */
@@ -1828,7 +1883,7 @@ static int ns_mkdir_op(struct mnt_idmap
if (error)
return error;
- parent = aa_get_ns(dir->i_private);
+ parent = get_ns_common_ref(dir->i_private);
AA_BUG(d_inode(ns_subns_dir(parent)) != dir);
/* we have to unlock and then relock to get locking order right
@@ -1878,7 +1933,7 @@ static int ns_rmdir_op(struct inode *dir
if (error)
return error;
- parent = aa_get_ns(dir->i_private);
+ parent = get_ns_common_ref(dir->i_private);
/* rmdir calls the generic securityfs functions to remove files
* from the apparmor dir. It is up to the apparmor ns locking
* to avoid races.
@@ -1948,27 +2003,6 @@ void __aafs_ns_rmdir(struct aa_ns *ns)
__aa_fs_list_remove_rawdata(ns);
- if (ns_subns_dir(ns)) {
- sub = d_inode(ns_subns_dir(ns))->i_private;
- aa_put_ns(sub);
- }
- if (ns_subload(ns)) {
- sub = d_inode(ns_subload(ns))->i_private;
- aa_put_ns(sub);
- }
- if (ns_subreplace(ns)) {
- sub = d_inode(ns_subreplace(ns))->i_private;
- aa_put_ns(sub);
- }
- if (ns_subremove(ns)) {
- sub = d_inode(ns_subremove(ns))->i_private;
- aa_put_ns(sub);
- }
- if (ns_subrevision(ns)) {
- sub = d_inode(ns_subrevision(ns))->i_private;
- aa_put_ns(sub);
- }
-
for (i = AAFS_NS_SIZEOF - 1; i >= 0; --i) {
aafs_remove(ns->dents[i]);
ns->dents[i] = NULL;
@@ -1993,40 +2027,40 @@ static int __aafs_ns_mkdir_entries(struc
return PTR_ERR(dent);
ns_subdata_dir(ns) = dent;
- dent = aafs_create_file("revision", 0444, dir, ns,
+ dent = aafs_create_file("revision", 0444, dir,
+ &ns->unconfined->label.count,
&aa_fs_ns_revision_fops);
if (IS_ERR(dent))
return PTR_ERR(dent);
- aa_get_ns(ns);
ns_subrevision(ns) = dent;
- dent = aafs_create_file(".load", 0640, dir, ns,
- &aa_fs_profile_load);
+ dent = aafs_create_file(".load", 0640, dir,
+ &ns->unconfined->label.count,
+ &aa_fs_profile_load);
if (IS_ERR(dent))
return PTR_ERR(dent);
- aa_get_ns(ns);
ns_subload(ns) = dent;
- dent = aafs_create_file(".replace", 0640, dir, ns,
- &aa_fs_profile_replace);
+ dent = aafs_create_file(".replace", 0640, dir,
+ &ns->unconfined->label.count,
+ &aa_fs_profile_replace);
if (IS_ERR(dent))
return PTR_ERR(dent);
- aa_get_ns(ns);
ns_subreplace(ns) = dent;
- dent = aafs_create_file(".remove", 0640, dir, ns,
- &aa_fs_profile_remove);
+ dent = aafs_create_file(".remove", 0640, dir,
+ &ns->unconfined->label.count,
+ &aa_fs_profile_remove);
if (IS_ERR(dent))
return PTR_ERR(dent);
- aa_get_ns(ns);
ns_subremove(ns) = dent;
/* use create_dentry so we can supply private data */
- dent = aafs_create("namespaces", S_IFDIR | 0755, dir, ns, NULL, NULL,
- &ns_dir_inode_operations);
+ dent = aafs_create("namespaces", S_IFDIR | 0755, dir,
+ &ns->unconfined->label.count,
+ NULL, NULL, &ns_dir_inode_operations);
if (IS_ERR(dent))
return PTR_ERR(dent);
- aa_get_ns(ns);
ns_subns_dir(ns) = dent;
return 0;
--- a/security/apparmor/include/label.h
+++ b/security/apparmor/include/label.h
@@ -101,7 +101,7 @@ enum label_flags {
struct aa_label;
struct aa_proxy {
- struct kref count;
+ struct aa_common_ref count;
struct aa_label __rcu *label;
};
@@ -121,7 +121,7 @@ struct label_it {
* @ent: set of profiles for label, actual size determined by @size
*/
struct aa_label {
- struct kref count;
+ struct aa_common_ref count;
struct rb_node node;
struct rcu_head rcu;
struct aa_proxy *proxy;
@@ -373,7 +373,7 @@ int aa_label_match(struct aa_profile *pr
*/
static inline struct aa_label *__aa_get_label(struct aa_label *l)
{
- if (l && kref_get_unless_zero(&l->count))
+ if (l && kref_get_unless_zero(&l->count.count))
return l;
return NULL;
@@ -382,7 +382,7 @@ static inline struct aa_label *__aa_get_
static inline struct aa_label *aa_get_label(struct aa_label *l)
{
if (l)
- kref_get(&(l->count));
+ kref_get(&(l->count.count));
return l;
}
@@ -402,7 +402,7 @@ static inline struct aa_label *aa_get_la
rcu_read_lock();
do {
c = rcu_dereference(*l);
- } while (c && !kref_get_unless_zero(&c->count));
+ } while (c && !kref_get_unless_zero(&c->count.count));
rcu_read_unlock();
return c;
@@ -442,7 +442,7 @@ static inline struct aa_label *aa_get_ne
static inline void aa_put_label(struct aa_label *l)
{
if (l)
- kref_put(&l->count, aa_label_kref);
+ kref_put(&l->count.count, aa_label_kref);
}
@@ -452,7 +452,7 @@ void aa_proxy_kref(struct kref *kref);
static inline struct aa_proxy *aa_get_proxy(struct aa_proxy *proxy)
{
if (proxy)
- kref_get(&(proxy->count));
+ kref_get(&(proxy->count.count));
return proxy;
}
@@ -460,7 +460,7 @@ static inline struct aa_proxy *aa_get_pr
static inline void aa_put_proxy(struct aa_proxy *proxy)
{
if (proxy)
- kref_put(&proxy->count, aa_proxy_kref);
+ kref_put(&proxy->count.count, aa_proxy_kref);
}
void __aa_proxy_redirect(struct aa_label *orig, struct aa_label *new);
--- a/security/apparmor/include/lib.h
+++ b/security/apparmor/include/lib.h
@@ -71,6 +71,18 @@ void aa_info_message(const char *str);
/* Security blob offsets */
extern struct lsm_blob_sizes apparmor_blob_sizes;
+enum reftype {
+ REF_NS,
+ REF_PROXY,
+ REF_RAWDATA,
+};
+
+/* common reference count used by data the shows up in aafs */
+struct aa_common_ref {
+ struct kref count;
+ enum reftype reftype;
+};
+
/**
* aa_strneq - compare null terminated @str to a non null terminated substring
* @str: a null terminated string
--- a/security/apparmor/include/policy.h
+++ b/security/apparmor/include/policy.h
@@ -329,7 +329,7 @@ static inline aa_state_t ANY_RULE_MEDIAT
static inline struct aa_profile *aa_get_profile(struct aa_profile *p)
{
if (p)
- kref_get(&(p->label.count));
+ kref_get(&(p->label.count.count));
return p;
}
@@ -343,7 +343,7 @@ static inline struct aa_profile *aa_get_
*/
static inline struct aa_profile *aa_get_profile_not0(struct aa_profile *p)
{
- if (p && kref_get_unless_zero(&p->label.count))
+ if (p && kref_get_unless_zero(&p->label.count.count))
return p;
return NULL;
@@ -363,7 +363,7 @@ static inline struct aa_profile *aa_get_
rcu_read_lock();
do {
c = rcu_dereference(*p);
- } while (c && !kref_get_unless_zero(&c->label.count));
+ } while (c && !kref_get_unless_zero(&c->label.count.count));
rcu_read_unlock();
return c;
@@ -376,7 +376,7 @@ static inline struct aa_profile *aa_get_
static inline void aa_put_profile(struct aa_profile *p)
{
if (p)
- kref_put(&p->label.count, aa_label_kref);
+ kref_put(&p->label.count.count, aa_label_kref);
}
static inline int AUDIT_MODE(struct aa_profile *profile)
--- a/security/apparmor/include/policy_unpack.h
+++ b/security/apparmor/include/policy_unpack.h
@@ -108,7 +108,7 @@ struct aa_ext {
* fs entries and drops the associated @count ref.
*/
struct aa_loaddata {
- struct kref count;
+ struct aa_common_ref count;
struct kref pcount;
struct list_head list;
struct work_struct work;
@@ -143,7 +143,7 @@ aa_get_i_loaddata(struct aa_loaddata *da
{
if (data)
- kref_get(&(data->count));
+ kref_get(&(data->count.count));
return data;
}
@@ -171,7 +171,7 @@ struct aa_loaddata *aa_loaddata_alloc(si
static inline void aa_put_i_loaddata(struct aa_loaddata *data)
{
if (data)
- kref_put(&data->count, aa_loaddata_kref);
+ kref_put(&data->count.count, aa_loaddata_kref);
}
static inline void aa_put_profile_loaddata(struct aa_loaddata *data)
--- a/security/apparmor/label.c
+++ b/security/apparmor/label.c
@@ -52,7 +52,8 @@ static void free_proxy(struct aa_proxy *
void aa_proxy_kref(struct kref *kref)
{
- struct aa_proxy *proxy = container_of(kref, struct aa_proxy, count);
+ struct aa_proxy *proxy = container_of(kref, struct aa_proxy,
+ count.count);
free_proxy(proxy);
}
@@ -63,7 +64,8 @@ struct aa_proxy *aa_alloc_proxy(struct a
new = kzalloc(sizeof(struct aa_proxy), gfp);
if (new) {
- kref_init(&new->count);
+ kref_init(&new->count.count);
+ new->count.reftype = REF_PROXY;
rcu_assign_pointer(new->label, aa_get_label(label));
}
return new;
@@ -371,7 +373,8 @@ static void label_free_rcu(struct rcu_he
void aa_label_kref(struct kref *kref)
{
- struct aa_label *label = container_of(kref, struct aa_label, count);
+ struct aa_label *label = container_of(kref, struct aa_label,
+ count.count);
struct aa_ns *ns = labels_ns(label);
if (!ns) {
@@ -408,7 +411,8 @@ bool aa_label_init(struct aa_label *labe
label->size = size; /* doesn't include null */
label->vec[size] = NULL; /* null terminate */
- kref_init(&label->count);
+ kref_init(&label->count.count);
+ label->count.reftype = REF_NS; /* for aafs purposes */
RB_CLEAR_NODE(&label->node);
return true;
--- a/security/apparmor/policy_unpack.c
+++ b/security/apparmor/policy_unpack.c
@@ -118,7 +118,8 @@ static void do_loaddata_free(struct aa_l
void aa_loaddata_kref(struct kref *kref)
{
- struct aa_loaddata *d = container_of(kref, struct aa_loaddata, count);
+ struct aa_loaddata *d = container_of(kref, struct aa_loaddata,
+ count.count);
do_loaddata_free(d);
}
@@ -165,7 +166,8 @@ struct aa_loaddata *aa_loaddata_alloc(si
kfree(d);
return ERR_PTR(-ENOMEM);
}
- kref_init(&d->count);
+ kref_init(&d->count.count);
+ d->count.reftype = REF_RAWDATA;
kref_init(&d->pcount);
INIT_LIST_HEAD(&d->list);
next prev parent reply other threads:[~2026-03-12 20:29 UTC|newest]
Thread overview: 289+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-03-12 20:06 [PATCH 6.12 000/265] 6.12.77-rc1 review Greg Kroah-Hartman
2026-03-12 20:06 ` [PATCH 6.12 001/265] drm/vmwgfx: Fix invalid kref_put callback in vmw_bo_dirty_release Greg Kroah-Hartman
2026-03-12 20:06 ` [PATCH 6.12 002/265] drm/vmwgfx: Return the correct value in vmw_translate_ptr functions Greg Kroah-Hartman
2026-03-12 20:06 ` [PATCH 6.12 003/265] drm/logicvc: Fix device node reference leak in logicvc_drm_config_parse() Greg Kroah-Hartman
2026-03-12 20:06 ` [PATCH 6.12 004/265] KVM: arm64: Advertise support for FEAT_SCTLR2 Greg Kroah-Hartman
2026-03-12 20:26 ` Marc Zyngier
2026-03-13 16:02 ` Greg Kroah-Hartman
2026-03-12 20:06 ` [PATCH 6.12 005/265] KVM: arm64: Hide S1POE from guests when not supported by the host Greg Kroah-Hartman
2026-03-12 20:06 ` [PATCH 6.12 006/265] irqchip/sifive-plic: Fix frozen interrupt due to affinity setting Greg Kroah-Hartman
2026-03-12 20:06 ` [PATCH 6.12 007/265] scsi: lpfc: Properly set WC for DPP mapping Greg Kroah-Hartman
2026-03-12 20:06 ` [PATCH 6.12 008/265] scsi: pm8001: Fix use-after-free in pm8001_queue_command() Greg Kroah-Hartman
2026-03-12 20:06 ` [PATCH 6.12 009/265] ALSA: scarlett2: Fix redeclaration of loop variable Greg Kroah-Hartman
2026-03-12 20:06 ` [PATCH 6.12 010/265] ALSA: scarlett2: Fix DSP filter control array handling Greg Kroah-Hartman
2026-03-12 20:06 ` [PATCH 6.12 011/265] ALSA: usb-audio: Remove VALIDATE_RATES quirk for Focusrite devices Greg Kroah-Hartman
2026-03-12 20:06 ` [PATCH 6.12 012/265] x86/fred: Correct speculative safety in fred_extint() Greg Kroah-Hartman
2026-03-12 20:06 ` [PATCH 6.12 013/265] sched/fair: Fix EEVDF entity placement bug causing scheduling lag Greg Kroah-Hartman
2026-03-12 20:06 ` [PATCH 6.12 014/265] sched/fair: Fix lag clamp Greg Kroah-Hartman
2026-03-12 20:06 ` [PATCH 6.12 015/265] rseq: Clarify rseq registration rseq_size bound check comment Greg Kroah-Hartman
2026-03-12 20:06 ` [PATCH 6.12 016/265] cgroup/cpuset: Fix incorrect use of cpuset_update_tasks_cpumask() in update_cpumasks_hier() Greg Kroah-Hartman
2026-03-12 20:06 ` [PATCH 6.12 017/265] scsi: ufs: core: Move link recovery for hibern8 exit failure to wl_resume Greg Kroah-Hartman
2026-03-12 20:06 ` [PATCH 6.12 018/265] ALSA: usb-audio: Cap the packet size pre-calculations Greg Kroah-Hartman
2026-03-12 20:06 ` [PATCH 6.12 019/265] ALSA: usb-audio: Use inclusive terms Greg Kroah-Hartman
2026-03-12 20:06 ` [PATCH 6.12 020/265] perf: Fix __perf_event_overflow() vs perf_remove_from_context() race Greg Kroah-Hartman
2026-03-12 20:06 ` [PATCH 6.12 021/265] s390/idle: Fix cpu idle exit cpu time accounting Greg Kroah-Hartman
2026-03-12 20:06 ` [PATCH 6.12 022/265] s390/vtime: Fix virtual timer forwarding Greg Kroah-Hartman
2026-03-12 20:06 ` [PATCH 6.12 023/265] PCI: endpoint: Introduce pci_epc_function_is_valid() Greg Kroah-Hartman
2026-03-12 20:06 ` [PATCH 6.12 024/265] PCI: endpoint: Introduce pci_epc_mem_map()/unmap() Greg Kroah-Hartman
2026-03-12 20:06 ` [PATCH 6.12 025/265] PCI: dwc: endpoint: Implement the pci_epc_ops::align_addr() operation Greg Kroah-Hartman
2026-03-12 20:06 ` [PATCH 6.12 026/265] PCI: dwc: ep: Use align addr function for dw_pcie_ep_raise_{msi,msix}_irq() Greg Kroah-Hartman
2026-03-12 20:06 ` [PATCH 6.12 027/265] PCI: dwc: ep: Flush MSI-X write before unmapping its ATU entry Greg Kroah-Hartman
2026-03-12 20:06 ` [PATCH 6.12 028/265] drm/amdgpu: Unlock a mutex before destroying it Greg Kroah-Hartman
2026-03-12 20:06 ` [PATCH 6.12 029/265] drm/amdgpu: Replace kzalloc + copy_from_user with memdup_user Greg Kroah-Hartman
2026-03-12 20:06 ` [PATCH 6.12 030/265] drm/amdgpu: Fix locking bugs in error paths Greg Kroah-Hartman
2026-03-12 20:06 ` [PATCH 6.12 031/265] ALSA: pci: hda: use snd_kcontrol_chip() Greg Kroah-Hartman
2026-03-12 20:06 ` [PATCH 6.12 032/265] ALSA: hda: cs35l56: Fix signedness error in cs35l56_hda_posture_put() Greg Kroah-Hartman
2026-03-12 20:07 ` [PATCH 6.12 033/265] btrfs: fix incorrect key offset in error message in check_dev_extent_item() Greg Kroah-Hartman
2026-03-12 20:07 ` [PATCH 6.12 034/265] btrfs: fix objectid value in error message in check_extent_data_ref() Greg Kroah-Hartman
2026-03-12 20:07 ` [PATCH 6.12 035/265] btrfs: fix warning in scrub_verify_one_metadata() Greg Kroah-Hartman
2026-03-12 20:07 ` [PATCH 6.12 036/265] btrfs: print correct subvol num if active swapfile prevents deletion Greg Kroah-Hartman
2026-03-12 20:07 ` [PATCH 6.12 037/265] btrfs: fix compat mask in error messages in btrfs_check_features() Greg Kroah-Hartman
2026-03-12 20:07 ` [PATCH 6.12 038/265] bpf, arm64: Force 8-byte alignment for JIT buffer to prevent atomic tearing Greg Kroah-Hartman
2026-03-12 20:07 ` [PATCH 6.12 039/265] bpf: Fix stack-out-of-bounds write in devmap Greg Kroah-Hartman
2026-03-12 20:07 ` [PATCH 6.12 040/265] PCI: Correct PCI_CAP_EXP_ENDPOINT_SIZEOF_V2 value Greg Kroah-Hartman
2026-03-12 20:07 ` [PATCH 6.12 041/265] x86/acpi/boot: Correct acpi_is_processor_usable() check again Greg Kroah-Hartman
2026-03-12 20:07 ` [PATCH 6.12 042/265] memory: mtk-smi: fix device leaks on common probe Greg Kroah-Hartman
2026-03-12 20:07 ` [PATCH 6.12 043/265] memory: mtk-smi: fix device leak on larb probe Greg Kroah-Hartman
2026-03-12 20:07 ` [PATCH 6.12 044/265] PCI: dw-rockchip: Dont wait for link since we can detect Link Up Greg Kroah-Hartman
2026-03-12 20:07 ` [PATCH 6.12 045/265] Revert "PCI: dw-rockchip: Dont wait for link since we can detect Link Up" Greg Kroah-Hartman
2026-03-12 20:07 ` [PATCH 6.12 046/265] PCI: qcom: Dont wait for link if we can detect Link Up Greg Kroah-Hartman
2026-03-12 20:07 ` [PATCH 6.12 047/265] Revert "PCI: qcom: Dont wait for link if we can detect Link Up" Greg Kroah-Hartman
2026-03-12 20:07 ` [PATCH 6.12 048/265] resource: Add resource set range and size helpers Greg Kroah-Hartman
2026-03-12 20:07 ` [PATCH 6.12 049/265] PCI: Use resource_set_range() that correctly sets ->end Greg Kroah-Hartman
2026-03-12 20:07 ` [PATCH 6.12 050/265] media: tegra-video: Fix memory leak in __tegra_channel_try_format() Greg Kroah-Hartman
2026-03-12 20:07 ` [PATCH 6.12 051/265] media: dw9714: move power sequences to dedicated functions Greg Kroah-Hartman
2026-03-12 20:07 ` [PATCH 6.12 052/265] media: dw9714: add support for powerdown pin Greg Kroah-Hartman
2026-03-12 20:07 ` [PATCH 6.12 053/265] media: dw9714: Fix powerup sequence Greg Kroah-Hartman
2026-03-12 20:07 ` [PATCH 6.12 054/265] KVM: x86: Ignore -EBUSY when checking nested events from vcpu_block() Greg Kroah-Hartman
2026-03-12 20:07 ` [PATCH 6.12 055/265] ata: libata-scsi: Refactor ata_scsi_simulate() Greg Kroah-Hartman
2026-03-12 20:07 ` [PATCH 6.12 056/265] ata: libata-scsi: Refactor ata_scsiop_read_cap() Greg Kroah-Hartman
2026-03-12 20:07 ` [PATCH 6.12 057/265] ata: libata-scsi: Refactor ata_scsiop_maint_in() Greg Kroah-Hartman
2026-03-12 20:07 ` [PATCH 6.12 058/265] ata: libata-scsi: Document all VPD page inquiry actors Greg Kroah-Hartman
2026-03-12 20:07 ` [PATCH 6.12 059/265] ata: libata-scsi: Remove struct ata_scsi_args Greg Kroah-Hartman
2026-03-12 20:07 ` [PATCH 6.12 060/265] ata: libata: Remove ATA_DFLAG_ZAC device flag Greg Kroah-Hartman
2026-03-12 20:07 ` [PATCH 6.12 061/265] ata: libata: Introduce ata_port_eh_scheduled() Greg Kroah-Hartman
2026-03-12 20:07 ` [PATCH 6.12 062/265] ata: libata-scsi: avoid Non-NCQ command starvation Greg Kroah-Hartman
2026-03-12 20:07 ` [PATCH 6.12 063/265] drm/tegra: dsi: fix device leak on probe Greg Kroah-Hartman
2026-03-12 20:07 ` [PATCH 6.12 064/265] ext4: correct the comments place for EXT4_EXT_MAY_ZEROOUT Greg Kroah-Hartman
2026-03-12 20:07 ` [PATCH 6.12 065/265] ext4: dont set EXT4_GET_BLOCKS_CONVERT when splitting before submitting I/O Greg Kroah-Hartman
2026-03-12 20:07 ` [PATCH 6.12 066/265] mailbox: dont protect of_parse_phandle_with_args with con_mutex Greg Kroah-Hartman
2026-03-12 20:07 ` [PATCH 6.12 067/265] mailbox: sort headers alphabetically Greg Kroah-Hartman
2026-03-12 20:07 ` [PATCH 6.12 068/265] mailbox: remove unused header files Greg Kroah-Hartman
2026-03-12 20:07 ` [PATCH 6.12 069/265] mailbox: Use dev_err when there is error Greg Kroah-Hartman
2026-03-12 20:07 ` [PATCH 6.12 070/265] mailbox: Use guard/scoped_guard for con_mutex Greg Kroah-Hartman
2026-03-12 20:07 ` [PATCH 6.12 071/265] mailbox: Allow controller specific mapping using fwnode Greg Kroah-Hartman
2026-03-12 20:07 ` [PATCH 6.12 072/265] mailbox: Prevent out-of-bounds access in fw_mbox_index_xlate() Greg Kroah-Hartman
2026-03-12 20:07 ` [PATCH 6.12 073/265] ext4: add ext4_try_lock_group() to skip busy groups Greg Kroah-Hartman
2026-03-12 20:07 ` [PATCH 6.12 074/265] ext4: factor out __ext4_mb_scan_group() Greg Kroah-Hartman
2026-03-12 20:07 ` [PATCH 6.12 075/265] ext4: factor out ext4_mb_might_prefetch() Greg Kroah-Hartman
2026-03-12 20:07 ` [PATCH 6.12 076/265] ext4: factor out ext4_mb_scan_group() Greg Kroah-Hartman
2026-03-12 20:07 ` [PATCH 6.12 077/265] ext4: convert free groups order lists to xarrays Greg Kroah-Hartman
2026-03-12 20:07 ` [PATCH 6.12 078/265] ext4: refactor choose group to scan group Greg Kroah-Hartman
2026-03-12 20:07 ` [PATCH 6.12 079/265] ext4: implement linear-like traversal across order xarrays Greg Kroah-Hartman
2026-03-12 20:07 ` [PATCH 6.12 080/265] ext4: always allocate blocks only from groups inode can use Greg Kroah-Hartman
2026-03-12 20:07 ` [PATCH 6.12 081/265] workqueue: Add system_percpu_wq and system_dfl_wq Greg Kroah-Hartman
2026-03-12 20:07 ` [PATCH 6.12 082/265] Input: synaptics_i2c - replace use of system_wq with system_dfl_wq Greg Kroah-Hartman
2026-03-12 20:07 ` [PATCH 6.12 083/265] Input: synaptics_i2c - guard polling restart in resume Greg Kroah-Hartman
2026-03-12 20:07 ` [PATCH 6.12 084/265] iommu/vt-d: Skip dev-iotlb flush for inaccessible PCIe device without scalable mode Greg Kroah-Hartman
2026-03-12 20:07 ` [PATCH 6.12 085/265] arm64: dts: rockchip: Fix rk356x PCIe range mappings Greg Kroah-Hartman
2026-03-12 20:07 ` [PATCH 6.12 086/265] arm64: dts: rockchip: Fix rk3588 " Greg Kroah-Hartman
2026-03-12 20:07 ` [PATCH 6.12 087/265] clk: tegra: tegra124-emc: fix device leak on set_rate() Greg Kroah-Hartman
2026-03-12 20:07 ` [PATCH 6.12 088/265] ima: kexec: silence RCU list traversal warning Greg Kroah-Hartman
2026-03-12 20:07 ` [PATCH 6.12 089/265] ima: rename variable the seq_file "file" to "ima_kexec_file" Greg Kroah-Hartman
2026-03-12 20:07 ` [PATCH 6.12 090/265] ima: define and call ima_alloc_kexec_file_buf() Greg Kroah-Hartman
2026-03-12 20:07 ` [PATCH 6.12 091/265] kexec: define functions to map and unmap segments Greg Kroah-Hartman
2026-03-12 20:07 ` [PATCH 6.12 092/265] ima: kexec: define functions to copy IMA log at soft boot Greg Kroah-Hartman
2026-03-12 20:08 ` [PATCH 6.12 093/265] ima: verify the previous kernels IMA buffer lies in addressable RAM Greg Kroah-Hartman
2026-03-12 20:08 ` [PATCH 6.12 094/265] of/kexec: refactor ima_get_kexec_buffer() to use ima_validate_range() Greg Kroah-Hartman
2026-03-12 20:08 ` [PATCH 6.12 095/265] drm/exynos: vidi: fix to avoid directly dereferencing user pointer Greg Kroah-Hartman
2026-03-12 20:08 ` [PATCH 6.12 096/265] drm/exynos/vidi: Remove redundant error handling in vidi_get_modes() Greg Kroah-Hartman
2026-03-12 20:08 ` [PATCH 6.12 097/265] drm/exynos: vidi: use ctx->lock to protect struct vidi_context member variables related to memory alloc/free Greg Kroah-Hartman
2026-03-12 20:08 ` [PATCH 6.12 098/265] uprobes: switch to RCU Tasks Trace flavor for better performance Greg Kroah-Hartman
2026-03-12 20:08 ` [PATCH 6.12 099/265] uprobes: Fix incorrect lockdep condition in filter_chain() Greg Kroah-Hartman
2026-03-12 20:08 ` [PATCH 6.12 100/265] btrfs: drop unused parameter fs_info from do_reclaim_sweep() Greg Kroah-Hartman
2026-03-12 20:08 ` [PATCH 6.12 101/265] btrfs: get used bytes while holding lock at btrfs_reclaim_bgs_work() Greg Kroah-Hartman
2026-03-12 20:08 ` [PATCH 6.12 102/265] btrfs: fix reclaimed bytes accounting after automatic block group reclaim Greg Kroah-Hartman
2026-03-12 20:08 ` [PATCH 6.12 103/265] btrfs: fix periodic reclaim condition Greg Kroah-Hartman
2026-03-12 20:08 ` [PATCH 6.12 104/265] btrfs: zoned: fix alloc_offset calculation for partly conventional block groups Greg Kroah-Hartman
2026-03-12 20:08 ` [PATCH 6.12 105/265] btrfs: zoned: fixup last alloc pointer after extent removal for RAID1 Greg Kroah-Hartman
2026-03-12 20:08 ` [PATCH 6.12 106/265] btrfs: zoned: fixup last alloc pointer after extent removal for DUP Greg Kroah-Hartman
2026-03-12 20:08 ` [PATCH 6.12 107/265] btrfs: zoned: fix stripe width calculation Greg Kroah-Hartman
2026-03-12 20:08 ` [PATCH 6.12 108/265] btrfs: define the AUTO_KFREE/AUTO_KVFREE helper macros Greg Kroah-Hartman
2026-03-12 20:08 ` [PATCH 6.12 109/265] btrfs: zoned: fixup last alloc pointer after extent removal for RAID0/10 Greg Kroah-Hartman
2026-03-12 20:08 ` [PATCH 6.12 110/265] usb: cdns3: remove redundant if branch Greg Kroah-Hartman
2026-03-12 20:08 ` [PATCH 6.12 111/265] usb: cdns3: call cdns_power_is_lost() only once in cdns_resume() Greg Kroah-Hartman
2026-03-12 20:08 ` [PATCH 6.12 112/265] usb: cdns3: fix role switching during resume Greg Kroah-Hartman
2026-03-12 20:08 ` [PATCH 6.12 113/265] drm/amd: Fix hang on amdgpu unload by using pci_dev_is_disconnected() Greg Kroah-Hartman
2026-03-12 20:08 ` [PATCH 6.12 114/265] ALSA: hda/conexant: Add quirk for HP ZBook Studio G4 Greg Kroah-Hartman
2026-03-12 20:08 ` [PATCH 6.12 115/265] hwmon: (max16065) Use READ/WRITE_ONCE to avoid compiler optimization induced race Greg Kroah-Hartman
2026-03-12 20:08 ` [PATCH 6.12 116/265] ksmbd: check return value of xa_store() in krb5_authenticate Greg Kroah-Hartman
2026-03-12 20:08 ` [PATCH 6.12 117/265] ksmbd: add chann_lock to protect ksmbd_chann_list xarray Greg Kroah-Hartman
2026-03-12 20:08 ` [PATCH 6.12 118/265] LoongArch/orc: Use RCU in all users of __module_address() Greg Kroah-Hartman
2026-03-12 20:08 ` [PATCH 6.12 119/265] LoongArch: Remove unnecessary checks for ORC unwinder Greg Kroah-Hartman
2026-03-12 20:08 ` [PATCH 6.12 120/265] LoongArch: Handle percpu handler address " Greg Kroah-Hartman
2026-03-12 20:08 ` [PATCH 6.12 121/265] LoongArch: Remove some extern variables in source files Greg Kroah-Hartman
2026-03-12 20:08 ` [PATCH 6.12 122/265] ALSA: hda/realtek: Add quirk for Gigabyte G5 KF5 (2023) Greg Kroah-Hartman
2026-03-12 20:08 ` [PATCH 6.12 123/265] ALSA: hda/realtek: Add quirk for Samsung Galaxy Book3 Pro 360 (NP965QFG) Greg Kroah-Hartman
2026-03-12 20:08 ` [PATCH 6.12 124/265] ALSA: hda/conexant: Fix headphone jack handling on Acer Swift SF314 Greg Kroah-Hartman
2026-03-12 20:08 ` [PATCH 6.12 125/265] net: arcnet: com20020-pci: fix support for 2.5Mbit cards Greg Kroah-Hartman
2026-03-12 20:08 ` [PATCH 6.12 126/265] eventpoll: Fix integer overflow in ep_loop_check_proc() Greg Kroah-Hartman
2026-03-12 20:08 ` [PATCH 6.12 127/265] namespace: fix proc mount iteration Greg Kroah-Hartman
2026-03-12 20:08 ` [PATCH 6.12 128/265] media: dvb-core: fix wrong reinitialization of ringbuffer on reopen Greg Kroah-Hartman
2026-03-12 20:08 ` [PATCH 6.12 129/265] nfc: pn533: properly drop the usb interface reference on disconnect Greg Kroah-Hartman
2026-03-12 20:08 ` [PATCH 6.12 130/265] net: usb: kaweth: validate USB endpoints Greg Kroah-Hartman
2026-03-12 20:08 ` [PATCH 6.12 131/265] net: usb: kalmia: " Greg Kroah-Hartman
2026-03-12 20:08 ` [PATCH 6.12 132/265] net: usb: pegasus: " Greg Kroah-Hartman
2026-03-12 20:08 ` [PATCH 6.12 133/265] can: ems_usb: ems_usb_read_bulk_callback(): check the proper length of a message Greg Kroah-Hartman
2026-03-12 20:08 ` [PATCH 6.12 134/265] can: usb: f81604: correctly anchor the urb in the read bulk callback Greg Kroah-Hartman
2026-03-12 20:08 ` [PATCH 6.12 135/265] can: ucan: Fix infinite loop from zero-length messages Greg Kroah-Hartman
2026-03-12 20:08 ` [PATCH 6.12 136/265] can: usb: etas_es58x: correctly anchor the urb in the read bulk callback Greg Kroah-Hartman
2026-03-12 20:08 ` [PATCH 6.12 137/265] can: usb: f81604: handle short interrupt urb messages properly Greg Kroah-Hartman
2026-03-12 20:08 ` [PATCH 6.12 138/265] can: usb: f81604: handle bulk write errors properly Greg Kroah-Hartman
2026-03-12 20:08 ` [PATCH 6.12 139/265] HID: Add HID_CLAIMED_INPUT guards in raw_event callbacks missing them Greg Kroah-Hartman
2026-03-12 20:08 ` [PATCH 6.12 140/265] x86/efi: defer freeing of boot services memory Greg Kroah-Hartman
2026-03-12 20:08 ` [PATCH 6.12 141/265] platform/x86: dell-wmi-sysman: Dont hex dump plaintext password data Greg Kroah-Hartman
2026-03-12 20:08 ` [PATCH 6.12 142/265] platform/x86: dell-wmi: Add audio/mic mute key codes Greg Kroah-Hartman
2026-03-12 20:08 ` [PATCH 6.12 143/265] ALSA: usb-audio: Use correct version for UAC3 header validation Greg Kroah-Hartman
2026-03-12 20:08 ` [PATCH 6.12 144/265] wifi: radiotap: reject radiotap with unknown bits Greg Kroah-Hartman
2026-03-12 20:08 ` [PATCH 6.12 145/265] wifi: cfg80211: cancel rfkill_block work in wiphy_unregister() Greg Kroah-Hartman
2026-03-12 20:08 ` [PATCH 6.12 146/265] wifi: mac80211: bounds-check link_id in ieee80211_ml_reconfiguration Greg Kroah-Hartman
2026-03-12 20:08 ` [PATCH 6.12 147/265] wifi: mac80211: fix NULL pointer dereference in mesh_rx_csa_frame() Greg Kroah-Hartman
2026-03-12 20:08 ` [PATCH 6.12 148/265] IB/mthca: Add missed mthca_unmap_user_db() for mthca_create_srq() Greg Kroah-Hartman
2026-03-12 20:08 ` [PATCH 6.12 149/265] RDMA/irdma: Fix kernel stack leak in irdma_create_user_ah() Greg Kroah-Hartman
2026-03-12 20:08 ` [PATCH 6.12 150/265] net/sched: ets: fix divide by zero in the offload path Greg Kroah-Hartman
2026-03-12 20:08 ` [PATCH 6.12 151/265] nfsd: Fix cred ref leak in nfsd_nl_threads_set_doit() Greg Kroah-Hartman
2026-03-12 20:08 ` [PATCH 6.12 152/265] tracing: Fix WARN_ON in tracing_buffers_mmap_close Greg Kroah-Hartman
2026-03-12 20:09 ` [PATCH 6.12 153/265] scsi: target: Fix recursive locking in __configfs_open_file() Greg Kroah-Hartman
2026-03-12 20:09 ` [PATCH 6.12 154/265] Squashfs: check metadata block offset is within range Greg Kroah-Hartman
2026-03-12 20:09 ` [PATCH 6.12 155/265] drbd: fix "LOGIC BUG" in drbd_al_begin_io_nonblock() Greg Kroah-Hartman
2026-03-12 20:09 ` [PATCH 6.12 156/265] drbd: fix null-pointer dereference on local read error Greg Kroah-Hartman
2026-03-12 20:09 ` [PATCH 6.12 157/265] smb: client: fix cifs_pick_channel when channels are equally loaded Greg Kroah-Hartman
2026-03-12 20:09 ` [PATCH 6.12 158/265] smb: client: fix broken multichannel with krb5+signing Greg Kroah-Hartman
2026-03-12 20:09 ` [PATCH 6.12 159/265] smb: client: Dont log plaintext credentials in cifs_set_cifscreds Greg Kroah-Hartman
2026-03-12 20:09 ` [PATCH 6.12 160/265] scsi: core: Fix refcount leak for tagset_refcnt Greg Kroah-Hartman
2026-03-12 20:09 ` [PATCH 6.12 161/265] selftests: mptcp: more stable simult_flows tests Greg Kroah-Hartman
2026-03-12 20:09 ` [PATCH 6.12 162/265] selftests: mptcp: join: check removing signal+subflow endp Greg Kroah-Hartman
2026-03-13 9:54 ` Matthieu Baerts
2026-03-13 16:02 ` Greg Kroah-Hartman
2026-03-13 16:24 ` Matthieu Baerts
2026-03-12 20:09 ` [PATCH 6.12 163/265] xattr: switch to CLASS(fd) Greg Kroah-Hartman
2026-03-12 20:09 ` [PATCH 6.12 164/265] ARM: clean up the memset64() C wrapper Greg Kroah-Hartman
2026-03-12 20:09 ` [PATCH 6.12 165/265] net: stmmac: dwmac-loongson: Set clk_csr_i to 100-150MHz Greg Kroah-Hartman
2026-03-12 20:09 ` [PATCH 6.12 166/265] btrfs: always fallback to buffered write if the inode requires checksum Greg Kroah-Hartman
2026-03-12 20:09 ` [PATCH 6.12 167/265] ACPI: APEI: GHES: Disable KASAN instrumentation when compile testing with clang < 18 Greg Kroah-Hartman
2026-03-12 20:09 ` [PATCH 6.12 168/265] nvme: fix admin queue leak on controller reset Greg Kroah-Hartman
2026-03-12 20:09 ` [PATCH 6.12 169/265] hwmon: (aht10) Add support for dht20 Greg Kroah-Hartman
2026-03-12 20:09 ` [PATCH 6.12 170/265] hwmon: (aht10) Fix initialization commands for AHT20 Greg Kroah-Hartman
2026-03-12 20:09 ` [PATCH 6.12 171/265] pinctrl: equilibrium: rename irq_chip function callbacks Greg Kroah-Hartman
2026-03-12 20:09 ` [PATCH 6.12 172/265] pinctrl: equilibrium: fix warning trace on load Greg Kroah-Hartman
2026-03-12 20:09 ` [PATCH 6.12 173/265] platform/x86: thinkpad_acpi: Fix errors reading battery thresholds Greg Kroah-Hartman
2026-03-12 20:09 ` [PATCH 6.12 174/265] HID: multitouch: Get the contact ID from HID_DG_TRANSDUCER_INDEX fields in case of Apple Touch Bar Greg Kroah-Hartman
2026-03-12 20:09 ` [PATCH 6.12 175/265] HID: multitouch: add device ID for " Greg Kroah-Hartman
2026-03-13 0:27 ` Aditya Garg
2026-03-13 16:00 ` Greg Kroah-Hartman
2026-03-12 20:09 ` [PATCH 6.12 176/265] HID: multitouch: add quirks for Lenovo Yoga Book 9i Greg Kroah-Hartman
2026-03-12 20:09 ` [PATCH 6.12 177/265] HID: multitouch: new class MT_CLS_EGALAX_P80H84 Greg Kroah-Hartman
2026-03-12 20:09 ` [PATCH 6.12 178/265] pinctrl: cirrus: cs42l43: Fix double-put in cs42l43_pin_probe() Greg Kroah-Hartman
2026-03-12 20:09 ` [PATCH 6.12 179/265] hwmon: (it87) Check the it87_lock() return value Greg Kroah-Hartman
2026-03-12 20:09 ` [PATCH 6.12 180/265] idpf: change IRQ naming to match netdev and ethtool queue numbering Greg Kroah-Hartman
2026-03-12 20:09 ` [PATCH 6.12 181/265] i40e: Fix preempt count leak in napi poll tracepoint Greg Kroah-Hartman
2026-03-12 20:09 ` [PATCH 6.12 182/265] e1000e: clear DPG_EN after reset to avoid autonomous power-gating Greg Kroah-Hartman
2026-03-12 20:09 ` [PATCH 6.12 183/265] drm/solomon: Fix page start when updating rectangle in page addressing mode Greg Kroah-Hartman
2026-03-12 20:09 ` [PATCH 6.12 184/265] net: ethernet: ti: am65-cpsw-nuss/cpsw-ale: Fix multicast entry handling in ALE table Greg Kroah-Hartman
2026-03-12 20:09 ` [PATCH 6.12 185/265] xsk: Get rid of xdp_buff_xsk::xskb_list_node Greg Kroah-Hartman
2026-03-12 20:09 ` [PATCH 6.12 186/265] xsk: s/free_list_node/list_node/ Greg Kroah-Hartman
2026-03-12 20:09 ` [PATCH 6.12 187/265] xsk: Fix fragment node deletion to prevent buffer leak Greg Kroah-Hartman
2026-03-12 20:09 ` [PATCH 6.12 188/265] xsk: Fix zero-copy AF_XDP fragment drop Greg Kroah-Hartman
2026-03-12 20:09 ` [PATCH 6.12 189/265] dpaa2-switch: Fix interrupt storm after receiving bad if_id in IRQ handler Greg Kroah-Hartman
2026-03-12 20:09 ` [PATCH 6.12 190/265] atm: lec: fix null-ptr-deref in lec_arp_clear_vccs Greg Kroah-Hartman
2026-03-12 20:09 ` [PATCH 6.12 191/265] net: ti: icssg-prueth: Fix ping failure after offload mode setup when link speed is not 1G Greg Kroah-Hartman
2026-03-12 20:09 ` [PATCH 6.12 192/265] amd-xgbe: fix MAC_TCR_SS register width for 2.5G and 10M speeds Greg Kroah-Hartman
2026-03-12 20:09 ` [PATCH 6.12 193/265] can: bcm: fix locking for bcm_op runtime updates Greg Kroah-Hartman
2026-03-12 20:09 ` [PATCH 6.12 194/265] can: mcp251x: fix deadlock in error path of mcp251x_open Greg Kroah-Hartman
2026-03-12 20:09 ` [PATCH 6.12 195/265] wifi: rsi: Dont default to -EOPNOTSUPP in rsi_mac80211_config Greg Kroah-Hartman
2026-03-12 20:09 ` [PATCH 6.12 196/265] drm/xe: Do not preempt fence signaling CS instructions Greg Kroah-Hartman
2026-03-12 20:09 ` [PATCH 6.12 197/265] rust: kunit: fix warning when !CONFIG_PRINTK Greg Kroah-Hartman
2026-03-12 20:09 ` [PATCH 6.12 198/265] kunit: tool: copy caller args in run_kernel to prevent mutation Greg Kroah-Hartman
2026-03-12 20:09 ` [PATCH 6.12 199/265] net: dsa: realtek: rtl8365mb: fix rtl8365mb_phy_ocp_write return value Greg Kroah-Hartman
2026-03-12 20:09 ` [PATCH 6.12 200/265] bpf/bonding: reject vlan+srcmac xmit_hash_policy change when XDP is loaded Greg Kroah-Hartman
2026-03-12 20:09 ` [PATCH 6.12 201/265] octeon_ep: Relocate counter updates before NAPI Greg Kroah-Hartman
2026-03-12 20:09 ` [PATCH 6.12 202/265] octeon_ep: avoid compiler and IQ/OQ reordering Greg Kroah-Hartman
2026-03-12 20:09 ` [PATCH 6.12 203/265] octeon_ep_vf: Relocate counter updates before NAPI Greg Kroah-Hartman
2026-03-12 20:09 ` [PATCH 6.12 204/265] octeon_ep_vf: avoid compiler and IQ/OQ reordering Greg Kroah-Hartman
2026-03-12 20:09 ` [PATCH 6.12 205/265] wifi: cw1200: Fix locking in error paths Greg Kroah-Hartman
2026-03-12 20:09 ` [PATCH 6.12 206/265] wifi: wlcore: Fix a locking bug Greg Kroah-Hartman
2026-03-12 20:09 ` [PATCH 6.12 207/265] wifi: mt76: mt7996: Fix possible oob access in mt7996_mac_write_txwi_80211() Greg Kroah-Hartman
2026-03-12 20:09 ` [PATCH 6.12 208/265] wifi: mt76: mt7925: Fix possible oob access in mt7925_mac_write_txwi_80211() Greg Kroah-Hartman
2026-03-12 20:09 ` [PATCH 6.12 209/265] wifi: mt76: Fix possible oob access in mt76_connac2_mac_write_txwi_80211() Greg Kroah-Hartman
2026-03-12 20:09 ` [PATCH 6.12 210/265] indirect_call_wrapper: do not reevaluate function pointer Greg Kroah-Hartman
2026-03-12 20:09 ` [PATCH 6.12 211/265] net/rds: Fix circular locking dependency in rds_tcp_tune Greg Kroah-Hartman
2026-03-12 20:09 ` [PATCH 6.12 212/265] xen/acpi-processor: fix _CST detection using undersized evaluation buffer Greg Kroah-Hartman
2026-03-12 20:10 ` [PATCH 6.12 213/265] iavf: fix netdev->max_mtu to respect actual hardware limit Greg Kroah-Hartman
2026-03-12 20:10 ` [PATCH 6.12 214/265] bpf: Fix a UAF issue in bpf_trampoline_link_cgroup_shim Greg Kroah-Hartman
2026-03-12 20:10 ` [PATCH 6.12 215/265] smb/client: fix buffer size for smb311_posix_qinfo in smb2_compound_op() Greg Kroah-Hartman
2026-03-12 20:10 ` [PATCH 6.12 216/265] smb/client: fix buffer size for smb311_posix_qinfo in SMB311_posix_query_info() Greg Kroah-Hartman
2026-03-12 20:10 ` [PATCH 6.12 217/265] ipv6: fix NULL pointer deref in ip6_rt_get_dev_rcu() Greg Kroah-Hartman
2026-03-12 20:10 ` [PATCH 6.12 218/265] net: ipv4: fix ARM64 alignment fault in multipath hash seed Greg Kroah-Hartman
2026-03-12 20:10 ` [PATCH 6.12 219/265] amd-xgbe: fix sleep while atomic on suspend/resume Greg Kroah-Hartman
2026-03-12 20:10 ` [PATCH 6.12 220/265] drm/sched: Fix kernel-doc warning for drm_sched_job_done() Greg Kroah-Hartman
2026-03-12 20:10 ` [PATCH 6.12 221/265] i2c: i801: Revert "i2c: i801: replace acpi_lock with I2C bus lock" Greg Kroah-Hartman
2026-03-12 20:10 ` [PATCH 6.12 222/265] drm/xe/reg_sr: Fix leak on xa_store failure Greg Kroah-Hartman
2026-03-12 20:10 ` [PATCH 6.12 223/265] nvme: reject invalid pr_read_keys() num_keys values Greg Kroah-Hartman
2026-03-12 20:10 ` [PATCH 6.12 224/265] nvme: fix memory allocation in nvme_pr_read_keys() Greg Kroah-Hartman
2026-03-12 20:10 ` [PATCH 6.12 225/265] hwmon: (max6639) : Configure based on DT property Greg Kroah-Hartman
2026-03-12 20:10 ` [PATCH 6.12 226/265] hwmon: (max6639) fix inverted polarity Greg Kroah-Hartman
2026-03-12 20:10 ` [PATCH 6.12 227/265] net: sched: avoid qdisc_reset_all_tx_gt() vs dequeue race for lockless qdiscs Greg Kroah-Hartman
2026-03-12 20:10 ` [PATCH 6.12 228/265] net: nfc: nci: Fix zero-length proprietary notifications Greg Kroah-Hartman
2026-03-12 20:10 ` [PATCH 6.12 229/265] net_sched: sch_fq: clear q->band_pkt_count[] in fq_reset() Greg Kroah-Hartman
2026-03-12 20:10 ` [PATCH 6.12 230/265] nfc: nci: free skb on nci_transceive early error paths Greg Kroah-Hartman
2026-03-12 20:10 ` [PATCH 6.12 231/265] nfc: nci: clear NCI_DATA_EXCHANGE before calling completion callback Greg Kroah-Hartman
2026-03-12 20:10 ` [PATCH 6.12 232/265] nfc: rawsock: cancel tx_work before socket teardown Greg Kroah-Hartman
2026-03-12 20:10 ` [PATCH 6.12 233/265] net: stmmac: Fix error handling in VLAN add and delete paths Greg Kroah-Hartman
2026-03-12 20:10 ` [PATCH 6.12 234/265] netfilter: nft_set_pipapo: split gc into unlink and reclaim phase Greg Kroah-Hartman
2026-03-12 20:10 ` [PATCH 6.12 235/265] net: ethernet: mtk_eth_soc: Reset prog ptr to old_prog in case of error in mtk_xdp_setup() Greg Kroah-Hartman
2026-03-12 20:10 ` [PATCH 6.12 236/265] kselftest/harness: Use helper to avoid zero-size memset warning Greg Kroah-Hartman
2026-03-12 20:10 ` [PATCH 6.12 237/265] selftests/harness: order TEST_F and XFAIL_ADD constructors Greg Kroah-Hartman
2026-03-12 20:10 ` [PATCH 6.12 238/265] net: bridge: fix nd_tbl NULL dereference when IPv6 is disabled Greg Kroah-Hartman
2026-03-12 20:10 ` [PATCH 6.12 239/265] net: vxlan: " Greg Kroah-Hartman
2026-03-12 20:10 ` [PATCH 6.12 240/265] net: ipv6: fix panic when IPv4 route references loopback IPv6 nexthop Greg Kroah-Hartman
2026-03-12 20:10 ` [PATCH 6.12 241/265] net/sched: act_ife: Fix metalist update behavior Greg Kroah-Hartman
2026-03-12 20:10 ` [PATCH 6.12 242/265] xdp: use modulo operation to calculate XDP frag tailroom Greg Kroah-Hartman
2026-03-12 20:10 ` [PATCH 6.12 243/265] xsk: introduce helper to determine rxq->frag_size Greg Kroah-Hartman
2026-03-12 20:10 ` [PATCH 6.12 244/265] i40e: fix registering XDP RxQ info Greg Kroah-Hartman
2026-03-12 20:10 ` [PATCH 6.12 245/265] i40e: use xdp.frame_sz as XDP RxQ info frag_size Greg Kroah-Hartman
2026-03-12 20:10 ` [PATCH 6.12 246/265] xdp: produce a warning when calculated tailroom is negative Greg Kroah-Hartman
2026-03-12 20:10 ` [PATCH 6.12 247/265] selftest/arm64: Fix sve2p1_sigill() to hwcap test Greg Kroah-Hartman
2026-03-12 20:10 ` [PATCH 6.12 248/265] tracing: Add NULL pointer check to trigger_data_free() Greg Kroah-Hartman
2026-03-12 20:10 ` [PATCH 6.12 249/265] net/sched: Only allow act_ct to bind to clsact/ingress qdiscs and shared blocks Greg Kroah-Hartman
2026-03-12 20:10 ` [PATCH 6.12 250/265] apparmor: validate DFA start states are in bounds in unpack_pdb Greg Kroah-Hartman
2026-03-12 20:10 ` [PATCH 6.12 251/265] apparmor: fix memory leak in verify_header Greg Kroah-Hartman
2026-03-12 20:10 ` [PATCH 6.12 252/265] apparmor: replace recursive profile removal with iterative approach Greg Kroah-Hartman
2026-03-12 20:10 ` [PATCH 6.12 253/265] apparmor: fix: limit the number of levels of policy namespaces Greg Kroah-Hartman
2026-03-12 20:10 ` [PATCH 6.12 254/265] apparmor: fix side-effect bug in match_char() macro usage Greg Kroah-Hartman
2026-03-12 20:10 ` [PATCH 6.12 255/265] apparmor: fix missing bounds check on DEFAULT table in verify_dfa() Greg Kroah-Hartman
2026-03-12 20:10 ` [PATCH 6.12 256/265] apparmor: Fix double free of ns_name in aa_replace_profiles() Greg Kroah-Hartman
2026-03-12 20:10 ` [PATCH 6.12 257/265] apparmor: fix unprivileged local user can do privileged policy management Greg Kroah-Hartman
2026-03-12 20:10 ` [PATCH 6.12 258/265] apparmor: fix differential encoding verification Greg Kroah-Hartman
2026-03-12 20:10 ` [PATCH 6.12 259/265] apparmor: fix race on rawdata dereference Greg Kroah-Hartman
2026-03-12 20:10 ` Greg Kroah-Hartman [this message]
2026-03-12 20:10 ` [PATCH 6.12 261/265] ext4: fix potential null deref in ext4_mb_init() Greg Kroah-Hartman
2026-03-12 20:10 ` [PATCH 6.12 262/265] ata: libata-core: fix cancellation of a port deferred qc work Greg Kroah-Hartman
2026-03-12 20:10 ` [PATCH 6.12 263/265] ata: libata-eh: correctly handle deferred qc timeouts Greg Kroah-Hartman
2026-03-12 20:10 ` [PATCH 6.12 264/265] ata: libata: cancel pending work after clearing deferred_qc Greg Kroah-Hartman
2026-03-12 20:10 ` [PATCH 6.12 265/265] ata: libata-eh: Fix detection of deferred qc timeouts Greg Kroah-Hartman
2026-03-12 20:41 ` [PATCH 6.12 000/265] 6.12.77-rc1 review Brett A C Sheffield
2026-03-13 3:25 ` Shuah Khan
2026-03-13 5:32 ` freeze during boot regression " Barry K. Nathan
2026-03-13 5:55 ` Barry K. Nathan
2026-03-13 6:10 ` Ron Economos
2026-03-13 7:27 ` Francesco Dolcini
2026-03-13 8:05 ` Barry K. Nathan
2026-03-13 9:37 ` Ron Economos
2026-03-13 10:53 ` Barry K. Nathan
2026-03-13 13:38 ` Barry K. Nathan
2026-03-13 13:49 ` Greg Kroah-Hartman
2026-03-13 13:05 ` Mark Brown
2026-03-13 16:16 ` Jon Hunter
2026-03-13 16:18 ` Jon Hunter
2026-03-13 17:02 ` Florian Fainelli
2026-03-13 21:10 ` Miguel Ojeda
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20260312201027.741584503@linuxfoundation.org \
--to=gregkh@linuxfoundation.org \
--cc=cengiz.can@canonical.com \
--cc=georgia.garcia@canonical.com \
--cc=john.johansen@canonical.com \
--cc=maxime.belair@canonical.com \
--cc=patches@lists.linux.dev \
--cc=qsa@qualys.com \
--cc=stable@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox