Re: [PATCH v3 1/3] KEYS: Expand key->{datalen,quotalen} to unsigned int

From: Jarkko Sakkinen

Date: Tue Oct 20 2026 - 12:01:13 EST


On Tue, Oct 20, 2026 at 03:47:14PM +0000, Eric Biggers wrote:
> On Tue, Oct 20, 2026 at 04:38:55AM +0300, Jarkko Sakkinen wrote:
> > diff --git a/include/linux/key.h b/include/linux/key.h
> > index e40b5267658f..26139c3adf62 100644
> > --- a/include/linux/key.h
> > +++ b/include/linux/key.h
> > @@ -216,8 +216,8 @@ struct key {
> > kuid_t uid;
> > kgid_t gid;
> > key_perm_t perm; /* access permissions */
> > - unsigned short quotalen; /* length added to quota */
> > - unsigned short datalen; /* payload data length
> > + unsigned int quotalen; /* length added to quota */
> > + unsigned int datalen; /* payload data length
> > * - may not match RCU dereferenced payload
> > * - payload should contain own length
> > */
>
> fs/smb/client/cifsacl.c contains some debug logging that prints
> key::datalen using the %hu format specifier. Those need to be updated
> to %u to match the new type.

Ugh, my mistake i.e., we are talking about:

diff --git a/fs/smb/client/cifsacl.c b/fs/smb/client/cifsacl.c
index c5e47a835f99..de2acc7234be 100644
--- a/fs/smb/client/cifsacl.c
+++ b/fs/smb/client/cifsacl.c
@@ -385,7 +385,7 @@ id_to_sid(unsigned int cid, uint sidtype, struct smb_sid *ssid)
goto out_revert_creds;
} else if (sidkey->datalen < CIFS_SID_BASE_SIZE) {
rc = smb_EIO1(smb_eio_trace_malformed_sid_key, sidkey->datalen);
- cifs_dbg(FYI, "%s: Downcall contained malformed key (datalen=%hu)\n",
+ cifs_dbg(FYI, "%s: Downcall contained malformed key (datalen=%u)\n",
__func__, sidkey->datalen);
goto invalidate_key;
}
@@ -403,7 +403,7 @@ id_to_sid(unsigned int cid, uint sidtype, struct smb_sid *ssid)
if (ksid_size > sidkey->datalen) {
rc = smb_EIO2(smb_eio_trace_malformed_ksid_key,
ksid_size, sidkey->datalen);
- cifs_dbg(FYI, "%s: Downcall contained malformed key (datalen=%hu, ksid_size=%u)\n",
+ cifs_dbg(FYI, "%s: Downcall contained malformed key (datalen=%u, ksid_size=%u)\n",
__func__, sidkey->datalen, ksid_size);
goto invalidate_key;
}
@@ -498,7 +498,7 @@ sid_to_id(struct cifs_sb_info *cifs_sb, struct smb_sid *psid,
*/
BUILD_BUG_ON(sizeof(uid_t) != sizeof(gid_t));
if (sidkey->datalen != sizeof(uid_t)) {
- cifs_dbg(FYI, "%s: Downcall contained malformed key (datalen=%hu)\n",
+ cifs_dbg(FYI, "%s: Downcall contained malformed key (datalen=%u)\n",
__func__, sidkey->datalen);
key_invalidate(sidkey);
goto out_key_put;

I'll include this as part of the patch exactly.

>
> - Eric

Br, Jarkko