Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
96 commits
Select commit Hold shift + click to select a range
88d16a1
libceph: make decode_pool() more resilient against corrupted osdmaps
PlaidCat May 29, 2026
c1e7453
net/sched: Only allow act_ct to bind to clsact/ingress qdiscs and sha…
PlaidCat May 29, 2026
331b231
Bluetooth: msft: Handle MSFT Monitor Device Event
PlaidCat May 29, 2026
380de31
Bluetooth: mgmt: Add MGMT Adv Monitor Device Found/Lost events
PlaidCat May 29, 2026
d3b4d31
Bluetooth: msft: Clear tracked devices on resume
PlaidCat May 29, 2026
9a83e76
Bluetooth: hci_sync: Refactor add Adv Monitor
PlaidCat May 29, 2026
3afd3a7
Bluetooth: hci_sync: Refactor remove Adv Monitor
PlaidCat May 29, 2026
d28cf6e
Bluetooth: mgmt: remove NULL check in mgmt_set_connectable_complete()
PlaidCat May 29, 2026
f223aa7
Bluetooth: MGMT: Fix slab-use-after-free Read in set_powered_sync
PlaidCat May 29, 2026
de3df6d
Bluetooth: MGMT: Fix possible deadlocks
PlaidCat May 29, 2026
70f419a
Bluetooth: hci_sync: Using hci_cmd_sync_submit when removing Adv Monitor
PlaidCat May 29, 2026
e7edd41
Bluetooth: MGMT: Fix slab-use-after-free Read in mgmt_remove_adv_moni…
PlaidCat May 29, 2026
5beba21
Bluetooth: MGMT: Fix UAF on mgmt_remove_adv_monitor_complete
PlaidCat May 29, 2026
10dde5c
Bluetooth: MGMT: Remove unused mgmt_pending_find_data
PlaidCat May 29, 2026
a587822
Bluetooth: Keep MGMT pending queue ordered FIFO
PlaidCat May 29, 2026
b175976
Bluetooth: hci_core: Fix possible buffer overflow
PlaidCat May 29, 2026
34c7ba6
Bluetooth: Add initial implementation of CIS connections
PlaidCat May 29, 2026
12da44f
Bluetooth: MGMT: Fix possible crash on mgmt_index_removed
PlaidCat May 29, 2026
3b01c89
Bluetooth: MGMT: Fix sparse errors
PlaidCat May 29, 2026
036bb50
Bluetooth: MGMT: Protect mgmt_pending list with its own lock
PlaidCat May 29, 2026
ef43f27
Bluetooth: hci_sock: Prevent race in socket write iter and sock bind
PlaidCat May 29, 2026
ec34e7c
Bluetooth: Fix race condition in hci_cmd_sync_clear
PlaidCat May 29, 2026
1acf3ff
Bluetooth: hci_sync: Add helper functions to manipulate cmd_sync queue
PlaidCat May 29, 2026
f8e2c80
Bluetooth: hci_sync: fix set_local_name race condition
PlaidCat May 29, 2026
5d37f11
Bluetooth: MGMT: Fix possible UAFs
PlaidCat May 29, 2026
ee1a176
Bluetooth: MGMT: Fix dangling pointer on mgmt_add_adv_patterns_monito…
PlaidCat May 29, 2026
e86da0c
Bluetooth: hci_conn: Fix updating ISO QoS PHY
PlaidCat May 29, 2026
ddd0668
Bluetooth: hci_sync: fix double mgmt_pending_free() in remove_adv_mon…
PlaidCat May 29, 2026
e8bf8d4
Bluetooth: hci_sync: Fix hci_read_buffer_size_sync
PlaidCat May 29, 2026
857895e
Bluetooth: Fix HCIGETDEVINFO regression
PlaidCat May 29, 2026
f926e1a
Bluetooth: hci_conn: Fix not restoring ISO buffer count on disconnect
PlaidCat May 29, 2026
2ef3ab8
Bluetooth: hci_conn: Fix crash on hci_create_cis_sync
PlaidCat May 29, 2026
d07ed47
Bluetooth: hci_sync: Fix use HCI_OP_LE_READ_BUFFER_SIZE_V2
PlaidCat May 29, 2026
c6a7127
Bluetooth: hci_event: Fix Invalid wait context
PlaidCat May 29, 2026
fce5c9d
Bluetooth: hci_sync: Avoid use-after-free in dbg for hci_remove_adv_m…
PlaidCat May 29, 2026
5bcb71c
Bluetooth: hci_sync: Don't double print name in add/remove adv_monitor
PlaidCat May 29, 2026
8eaaade
Bluetooth: ISO: don't try to remove CIG if there are bound CIS left
PlaidCat May 29, 2026
c7449ee
Bluetooth: hci_sync: Avoid use-after-free in dbg for hci_add_adv_moni…
PlaidCat May 29, 2026
7181b86
Bluetooth: hci_sync: fix race in hci_cmd_sync_dequeue_once
PlaidCat May 29, 2026
c98876c
Bluetooth: MGMT: Fix memory leak in set_ssp_complete
PlaidCat May 29, 2026
7931a83
Bluetooth: MGMT: Fix list corruption and UAF in command complete hand…
PlaidCat May 29, 2026
7488ac8
Bluetooth: mgmt: remove NULL check in add_ext_adv_params_complete()
PlaidCat May 29, 2026
aa6d3f2
RDMA/umad: Reject negative data_len in ib_umad_write
PlaidCat May 29, 2026
d6bd5bf
ALSA: firewire-motu: fix buffer overflow in hwdep read for DSP events
PlaidCat May 29, 2026
d1f8a66
netfilter: nf_conntrack_h323: check for zero length in DecodeQ931()
PlaidCat May 29, 2026
37a9bf8
bpf: Check rcu_read_lock_trace_held() before calling bpf map helpers
PlaidCat May 29, 2026
4e5ca16
bpf: Add map and need_defer parameters to .map_fd_put_ptr()
PlaidCat May 29, 2026
e970b54
bpf: Set need_defer as false when clearing fd array during map free
PlaidCat May 29, 2026
c686e59
bpf: Defer the free of inner map when necessary
PlaidCat May 29, 2026
e1eb04d
bpf: Optimize the free of inner map
PlaidCat May 29, 2026
1403cf3
bpf: prepare for more bpf syscall to be used from kernel and user space.
PlaidCat May 29, 2026
b8080d2
selftests/bpf: Add test cases for inner map
PlaidCat May 29, 2026
4b6b2da
selftests/bpf: Test outer map update operations in syscall program
PlaidCat May 29, 2026
0669cbd
ima: don't clear IMA_DIGSIG flag when setting or removing non-IMA xattr
PlaidCat May 29, 2026
65cb5e8
smb: client: fix hang in wait_for_response() for negproto
PlaidCat May 29, 2026
74f0202
smb: client: fix first command failure during re-negotiation
PlaidCat May 29, 2026
f146bdd
smb: client: fix race condition in negotiate timeout by using more pr…
PlaidCat May 29, 2026
e4ee304
smb: client: remove redundant lstrp update in negotiate protocol
PlaidCat May 29, 2026
381098f
smb3: fix lock ordering potential deadlock in cifs_sync_mid_result
PlaidCat May 29, 2026
3b79af5
smb: client: rename server mid_lock to mid_queue_lock
PlaidCat May 29, 2026
18f146b
smb: client: add mid_counter_lock to protect the mid counter counter
PlaidCat May 29, 2026
d41bad0
smb: client: smb: client: eliminate mid_flags field
PlaidCat May 29, 2026
e4256d3
smb: client: fix mid_q_entry memleak leak with per-mid locking
PlaidCat May 29, 2026
8718557
net: sched: act_csum: validate nested VLAN headers
PlaidCat May 29, 2026
80f575c
netfilter: ip6t_eui64: reject invalid MAC header for all packets
PlaidCat May 29, 2026
fbe564c
Bluetooth: Consolidate code around sk_alloc into a helper function
PlaidCat May 29, 2026
2c7cb41
Bluetooth: Init sk_peer_* on bt_sock_alloc
PlaidCat May 29, 2026
baa1731
Bluetooth: Fix use-after-free bugs caused by sco_sock_timeout
PlaidCat May 29, 2026
2641f9f
Bluetooth: SCO: Fix UAF on sco_sock_timeout
PlaidCat May 29, 2026
e2c6731
Bluetooth: SCO: Fix use-after-free in sco_recv_frame() due to missing…
PlaidCat May 29, 2026
f01fdf2
Bluetooth: MGMT: validate LTK enc_size on load
PlaidCat May 29, 2026
0e3b0ca
netfilter: nf_conntrack_helper: pass helper to expect cleanup
PlaidCat May 29, 2026
4d83651
HID: wacom: fix out-of-bounds read in wacom_intuos_bt_irq
PlaidCat May 29, 2026
d3dd1c2
can: af_can: export can_sock_destruct()
PlaidCat May 29, 2026
bee31db
can: raw: fix ro->uniq use-after-free in raw_rcv()
PlaidCat May 29, 2026
21b01ec
xfs: delete attr leaf freemap entries when empty
PlaidCat May 29, 2026
813705a
xfs: fix freemap adjustments when adding xattrs to leaf blocks
PlaidCat May 29, 2026
2aa1aa3
md/bitmap: fix GPF in write_page caused by resize race
PlaidCat May 29, 2026
83188e7
netfilter: xt_tcpmss: check remaining length before reading optlen
PlaidCat May 29, 2026
10d650c
smb: common: change the data type of num_aces to le16
PlaidCat May 29, 2026
158e81f
cifs: fix incorrect validation for num_aces field of smb_acl
PlaidCat May 29, 2026
b64b69b
cifs: add validation check for the fields in smb_aces
PlaidCat May 29, 2026
9934120
smb: client: Return a status code only as a constant in sid_to_id()
PlaidCat May 29, 2026
926f5ed
smb: client: validate the whole DACL before rewriting it in cifsacl
PlaidCat May 29, 2026
aa5bbcf
smb: client: require a full NFS mode SID before reading mode bits
PlaidCat May 29, 2026
f734c72
smb: client: scope end_of_dacl to CIFS_DEBUG2 use in parse_dacl
PlaidCat May 29, 2026
5a3f9ad
crypto: null - Remove VLA usage of skcipher
PlaidCat May 29, 2026
f97fecd
crypto: algif_aead - Do not set MAY_BACKLOG on the async path
PlaidCat May 29, 2026
b73dc2c
crypto: algif_aead - Only wake up when ctx->more is zero
PlaidCat May 29, 2026
a95c046
crypto: algif_aead - fix uninitialized ctx->init
PlaidCat May 29, 2026
cc98d14
crypto: af_alg - Use bh_lock_sock in sk_destruct
PlaidCat May 29, 2026
b81ba47
crypto: af_alg - remove redundant initializations of sk_family
PlaidCat May 29, 2026
bd4afd2
crypto: af_alg - fix use-after-free in af_alg_accept() due to bh_lock…
PlaidCat May 29, 2026
b72295a
crypto: af_alg - Fix regression on empty requests
PlaidCat May 29, 2026
f31fcf7
crypto: af_alg - Work around empty control messages without MSG_MORE
PlaidCat May 29, 2026
7b8ffde
Rebuild rocky8_10 with kernel-4.18.0-553.126.1.el8_10
PlaidCat May 29, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion Makefile.rhelver
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ RHEL_MINOR = 10
#
# Use this spot to avoid future merge conflicts.
# Do not trim this comment.
RHEL_RELEASE = 553.125.1
RHEL_RELEASE = 553.126.1

#
# ZSTREAM
Expand Down
278 changes: 278 additions & 0 deletions ciq/ciq_backports/kernel-4.18.0-553.126.1.el8_10/0a8cf165.failed
Original file line number Diff line number Diff line change
@@ -0,0 +1,278 @@
smb: client: validate the whole DACL before rewriting it in cifsacl

jira KERNEL-1078
cve CVE-2026-31709
Rebuild_History Non-Buildable kernel-4.18.0-553.126.1.el8_10
commit-author Michael Bommarito <michael.bommarito@gmail.com>
commit 0a8cf165566ba55a39fd0f4de172119dd646d39a
Empty-Commit: Cherry-Pick Conflicts during history rebuild.
Will be included in final tarball splat. Ref for failed cherry-pick at:
ciq/ciq_backports/kernel-4.18.0-553.126.1.el8_10/0a8cf165.failed

build_sec_desc() and id_mode_to_cifs_acl() derive a DACL pointer from a
server-supplied dacloffset and then use the incoming ACL to rebuild the
chmod/chown security descriptor.

The original fix only checked that the struct smb_acl header fits before
reading dacl_ptr->size or dacl_ptr->num_aces. That avoids the immediate
header-field OOB read, but the rewrite helpers still walk ACEs based on
pdacl->num_aces with no structural validation of the incoming DACL body.

A malicious server can return a truncated DACL that still contains a
header, claims one or more ACEs, and then drive
replace_sids_and_copy_aces() or set_chmod_dacl() past the validated
extent while they compare or copy attacker-controlled ACEs.

Factor the DACL structural checks into validate_dacl(), extend them to
validate each ACE against the DACL bounds, and use the shared validator
before the chmod/chown rebuild paths. parse_dacl() reuses the same
validator so the read-side parser and write-side rewrite paths agree on
what constitutes a well-formed incoming DACL.

Fixes: bc3e9dd9d104 ("cifs: Change SIDs in ACEs while transferring file ownership.")
Cc: stable@vger.kernel.org
Assisted-by: Claude:claude-opus-4-6
Assisted-by: Codex:gpt-5-4
Signed-off-by: Michael Bommarito <michael.bommarito@gmail.com>
Signed-off-by: Steve French <stfrench@microsoft.com>
(cherry picked from commit 0a8cf165566ba55a39fd0f4de172119dd646d39a)
Signed-off-by: Jonathan Maple <jmaple@ciq.com>

# Conflicts:
# fs/cifs/cifsacl.c
diff --cc fs/cifs/cifsacl.c
index d3f01f636f10,cb4060ba5e31..000000000000
--- a/fs/cifs/cifsacl.c
+++ b/fs/cifs/cifsacl.c
@@@ -752,15 -758,86 +752,96 @@@ static void dump_ace(struct cifs_ace *p
}
#endif

++<<<<<<< HEAD:fs/cifs/cifsacl.c
+static void parse_dacl(struct cifs_acl *pdacl, char *end_of_acl,
+ struct cifs_sid *pownersid, struct cifs_sid *pgrpsid,
++=======
+ static int validate_dacl(struct smb_acl *pdacl, char *end_of_acl)
+ {
+ int i, ace_hdr_size, ace_size, min_ace_size;
+ u16 dacl_size, num_aces;
+ char *acl_base, *end_of_dacl;
+ struct smb_ace *pace;
+
+ if (!pdacl)
+ return 0;
+
+ if (end_of_acl < (char *)pdacl + sizeof(struct smb_acl)) {
+ cifs_dbg(VFS, "ACL too small to parse DACL\n");
+ return -EINVAL;
+ }
+
+ dacl_size = le16_to_cpu(pdacl->size);
+ if (dacl_size < sizeof(struct smb_acl) ||
+ end_of_acl < (char *)pdacl + dacl_size) {
+ cifs_dbg(VFS, "ACL too small to parse DACL\n");
+ return -EINVAL;
+ }
+
+ num_aces = le16_to_cpu(pdacl->num_aces);
+ if (!num_aces)
+ return 0;
+
+ ace_hdr_size = offsetof(struct smb_ace, sid) +
+ offsetof(struct smb_sid, sub_auth);
+ min_ace_size = ace_hdr_size + sizeof(__le32);
+ if (num_aces > (dacl_size - sizeof(struct smb_acl)) / min_ace_size) {
+ cifs_dbg(VFS, "ACL too small to parse DACL\n");
+ return -EINVAL;
+ }
+
+ end_of_dacl = (char *)pdacl + dacl_size;
+ acl_base = (char *)pdacl;
+ ace_size = sizeof(struct smb_acl);
+
+ for (i = 0; i < num_aces; ++i) {
+ if (end_of_dacl - acl_base < ace_size) {
+ cifs_dbg(VFS, "ACL too small to parse ACE\n");
+ return -EINVAL;
+ }
+
+ pace = (struct smb_ace *)(acl_base + ace_size);
+ acl_base = (char *)pace;
+
+ if (end_of_dacl - acl_base < ace_hdr_size ||
+ pace->sid.num_subauth == 0 ||
+ pace->sid.num_subauth > SID_MAX_SUB_AUTHORITIES) {
+ cifs_dbg(VFS, "ACL too small to parse ACE\n");
+ return -EINVAL;
+ }
+
+ ace_size = ace_hdr_size + sizeof(__le32) * pace->sid.num_subauth;
+ if (end_of_dacl - acl_base < ace_size ||
+ le16_to_cpu(pace->size) < ace_size) {
+ cifs_dbg(VFS, "ACL too small to parse ACE\n");
+ return -EINVAL;
+ }
+
+ ace_size = le16_to_cpu(pace->size);
+ if (end_of_dacl - acl_base < ace_size) {
+ cifs_dbg(VFS, "ACL too small to parse ACE\n");
+ return -EINVAL;
+ }
+ }
+
+ return 0;
+ }
+
+ static void parse_dacl(struct smb_acl *pdacl, char *end_of_acl,
+ struct smb_sid *pownersid, struct smb_sid *pgrpsid,
++>>>>>>> 0a8cf165566b (smb: client: validate the whole DACL before rewriting it in cifsacl):fs/smb/client/cifsacl.c
struct cifs_fattr *fattr, bool mode_from_special_sid)
{
int i;
- u16 num_aces = 0;
+ int num_aces = 0;
int acl_size;
++<<<<<<< HEAD:fs/cifs/cifsacl.c
+ char *acl_base;
+ struct cifs_ace **ppace;
++=======
+ char *acl_base, *end_of_dacl;
+ struct smb_ace **ppace;
++>>>>>>> 0a8cf165566b (smb: client: validate the whole DACL before rewriting it in cifsacl):fs/smb/client/cifsacl.c

/* BB need to add parm so we can store the SID BB */

@@@ -771,11 -848,8 +852,14 @@@
return;
}

++<<<<<<< HEAD:fs/cifs/cifsacl.c
+ /* validate that we do not go past end of acl */
+ if (end_of_acl < (char *)pdacl + le16_to_cpu(pdacl->size)) {
+ cifs_dbg(VFS, "ACL too small to parse DACL\n");
++=======
+ if (validate_dacl(pdacl, end_of_acl))
++>>>>>>> 0a8cf165566b (smb: client: validate the whole DACL before rewriting it in cifsacl):fs/smb/client/cifsacl.c
return;
- }

cifs_dbg(NOISY, "DACL revision %d size %d num aces %d\n",
le16_to_cpu(pdacl->revision), le16_to_cpu(pdacl->size),
@@@ -786,24 -860,23 +870,34 @@@
user/group/other have no permissions */
fattr->cf_mode &= ~(0777);

+ end_of_dacl = (char *)pdacl + le16_to_cpu(pdacl->size);
acl_base = (char *)pdacl;
- acl_size = sizeof(struct smb_acl);
+ acl_size = sizeof(struct cifs_acl);

- num_aces = le16_to_cpu(pdacl->num_aces);
+ num_aces = le32_to_cpu(pdacl->num_aces);
if (num_aces > 0) {
umode_t denied_mode = 0;

++<<<<<<< HEAD:fs/cifs/cifsacl.c
+ if (num_aces > ULONG_MAX / sizeof(struct cifs_ace *))
+ return;
+ ppace = kmalloc_array(num_aces, sizeof(struct cifs_ace *),
+ GFP_KERNEL);
++=======
+ ppace = kmalloc_objs(struct smb_ace *, num_aces);
++>>>>>>> 0a8cf165566b (smb: client: validate the whole DACL before rewriting it in cifsacl):fs/smb/client/cifsacl.c
if (!ppace)
return;

for (i = 0; i < num_aces; ++i) {
++<<<<<<< HEAD:fs/cifs/cifsacl.c
+ ppace[i] = (struct cifs_ace *) (acl_base + acl_size);
++=======
+ ppace[i] = (struct smb_ace *) (acl_base + acl_size);
+
++>>>>>>> 0a8cf165566b (smb: client: validate the whole DACL before rewriting it in cifsacl):fs/smb/client/cifsacl.c
#ifdef CONFIG_CIFS_DEBUG2
- dump_ace(ppace[i], end_of_acl);
+ dump_ace(ppace[i], end_of_dacl);
#endif
if (mode_from_special_sid &&
(compare_sids(&(ppace[i]->sid),
@@@ -1262,16 -1341,15 +1356,23 @@@ static int build_sec_desc(struct cifs_n

dacloffset = le32_to_cpu(pntsd->dacloffset);
if (dacloffset) {
++<<<<<<< HEAD:fs/cifs/cifsacl.c
+ dacl_ptr = (struct cifs_acl *)((char *)pntsd + dacloffset);
+ if (end_of_acl < (char *)dacl_ptr + le16_to_cpu(dacl_ptr->size)) {
+ cifs_dbg(VFS, "Server returned illegal ACL size\n");
+ return -EINVAL;
+ }
++=======
+ dacl_ptr = (struct smb_acl *)((char *)pntsd + dacloffset);
+ rc = validate_dacl(dacl_ptr, end_of_acl);
+ if (rc)
+ return rc;
++>>>>>>> 0a8cf165566b (smb: client: validate the whole DACL before rewriting it in cifsacl):fs/smb/client/cifsacl.c
}

- owner_sid_ptr = (struct smb_sid *)((char *)pntsd +
+ owner_sid_ptr = (struct cifs_sid *)((char *)pntsd +
le32_to_cpu(pntsd->osidoffset));
- group_sid_ptr = (struct smb_sid *)((char *)pntsd +
+ group_sid_ptr = (struct cifs_sid *)((char *)pntsd +
le32_to_cpu(pntsd->gsidoffset));

if (pnmode && *pnmode != NO_CHANGE_64) { /* chmod */
@@@ -1605,32 -1692,33 +1706,42 @@@ id_mode_to_cifs_acl(struct inode *inode
return rc;
}

- sbflags = cifs_sb_flags(cifs_sb);
- mode_from_sid = sbflags & CIFS_MOUNT_MODE_FROM_SID;
- id_from_sid = sbflags & CIFS_MOUNT_UID_FROM_ACL;
+ if (cifs_sb->mnt_cifs_flags & CIFS_MOUNT_MODE_FROM_SID)
+ mode_from_sid = true;
+ else
+ mode_from_sid = false;
+
+ if (cifs_sb->mnt_cifs_flags & CIFS_MOUNT_UID_FROM_ACL)
+ id_from_sid = true;
+ else
+ id_from_sid = false;

/* Potentially, five new ACEs can be added to the ACL for U,G,O mapping */
+ nsecdesclen = secdesclen;
if (pnmode && *pnmode != NO_CHANGE_64) { /* chmod */
- if (posix)
- nsecdesclen = 1 * sizeof(struct smb_ace);
- else if (mode_from_sid)
- nsecdesclen = secdesclen + (2 * sizeof(struct smb_ace));
+ if (mode_from_sid)
+ nsecdesclen += 2 * sizeof(struct cifs_ace);
else /* cifsacl */
- nsecdesclen = secdesclen + (5 * sizeof(struct smb_ace));
+ nsecdesclen += 5 * sizeof(struct cifs_ace);
} else { /* chown */
/* When ownership changes, changes new owner sid length could be different */
- nsecdesclen = sizeof(struct smb_ntsd) + (sizeof(struct smb_sid) * 2);
+ nsecdesclen = sizeof(struct cifs_ntsd) + (sizeof(struct cifs_sid) * 2);
dacloffset = le32_to_cpu(pntsd->dacloffset);
if (dacloffset) {
++<<<<<<< HEAD:fs/cifs/cifsacl.c
+ dacl_ptr = (struct cifs_acl *)((char *)pntsd + dacloffset);
++=======
+ dacl_ptr = (struct smb_acl *)((char *)pntsd + dacloffset);
+ rc = validate_dacl(dacl_ptr, (char *)pntsd + secdesclen);
+ if (rc) {
+ kfree(pntsd);
+ cifs_put_tlink(tlink);
+ return rc;
+ }
++>>>>>>> 0a8cf165566b (smb: client: validate the whole DACL before rewriting it in cifsacl):fs/smb/client/cifsacl.c
if (mode_from_sid)
nsecdesclen +=
- le16_to_cpu(dacl_ptr->num_aces) * sizeof(struct smb_ace);
+ le32_to_cpu(dacl_ptr->num_aces) * sizeof(struct cifs_ace);
else /* cifsacl */
nsecdesclen += le16_to_cpu(dacl_ptr->size);
}
* Unmerged path fs/cifs/cifsacl.c
Loading
Loading