In SMB2_open_init() , if  smb2_plain_req_init() fails, then the memory assigned 
to req  will be leaked. It's similar to SMB2_open() which is fixed by the commit
<b7a73c84eb96> ("cifs: fix memory leak in SMB2_open()").

Signed-off-by: Defang Bo <[email protected]>
---
 fs/cifs/smb2pdu.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/fs/cifs/smb2pdu.c b/fs/cifs/smb2pdu.c
index 2f4cdd2..a1f584a 100644
--- a/fs/cifs/smb2pdu.c
+++ b/fs/cifs/smb2pdu.c
@@ -2703,9 +2703,10 @@ int smb311_posix_mkdir(const unsigned int xid, struct 
inode *inode,
 
        rc = smb2_plain_req_init(SMB2_CREATE, tcon, server,
                                 (void **) &req, &total_len);
-       if (rc)
+       if (rc) {
+               cifs_small_buf_release(req);
                return rc;
-
+       }
        iov[0].iov_base = (char *)req;
        /* -1 since last byte is buf[0] which is sent below (path) */
        iov[0].iov_len = total_len - 1;
-- 
1.9.1

Reply via email to