diff --git a/fs/ksmbd/smb2pdu.c b/fs/ksmbd/smb2pdu.c index 20f97b37e7c6b2335db30291d7eccf82e86e669e..30f2da671688ed5c1db15f1fcdb237ffdd09c093 100644 --- a/fs/ksmbd/smb2pdu.c +++ b/fs/ksmbd/smb2pdu.c @@ -3052,8 +3052,11 @@ int smb2_open(struct ksmbd_work *work) sizeof(struct smb_acl) + sizeof(struct smb_ace) * ace_num * 2, GFP_KERNEL); - if (!pntsd) + if (!pntsd) { + posix_acl_release(fattr.cf_acls); + posix_acl_release(fattr.cf_dacls); goto err_out; + } rc = build_sec_desc(pntsd, NULL, 0, OWNER_SECINFO | @@ -3363,7 +3366,7 @@ int smb2_open(struct ksmbd_work *work) kfree(lc); - return 0; + return rc; } static int readdir_info_level_struct_sz(int info_level)