forked from luck/tmp_suning_uos_patched
[CIFS] Add missing check for path name allocation failure. Remove four
redundant null pointer checks before cifs_buf_release. Found by coverity analyzer. Signed-off-by: Steve French (sfrench@us.ibm.com)
This commit is contained in:
parent
a47fd3f5e3
commit
4a6d87f1db
|
@ -415,15 +415,16 @@ CIFSSMBNegotiate(unsigned int xid, struct cifsSesInfo *ses)
|
|||
if(server->secMode & SECMODE_SIGN_REQUIRED)
|
||||
cERROR(1,
|
||||
("Server requires /proc/fs/cifs/PacketSigningEnabled"));
|
||||
server->secMode &= ~(SECMODE_SIGN_ENABLED | SECMODE_SIGN_REQUIRED);
|
||||
server->secMode &= ~(SECMODE_SIGN_ENABLED |
|
||||
SECMODE_SIGN_REQUIRED);
|
||||
} else if(sign_CIFS_PDUs == 1) {
|
||||
if((server->secMode & SECMODE_SIGN_REQUIRED) == 0)
|
||||
server->secMode &= ~(SECMODE_SIGN_ENABLED | SECMODE_SIGN_REQUIRED);
|
||||
server->secMode &= ~(SECMODE_SIGN_ENABLED |
|
||||
SECMODE_SIGN_REQUIRED);
|
||||
}
|
||||
|
||||
}
|
||||
if (pSMB)
|
||||
cifs_buf_release(pSMB);
|
||||
cifs_buf_release(pSMB);
|
||||
return rc;
|
||||
}
|
||||
|
||||
|
@ -537,9 +538,8 @@ CIFSSMBLogoff(const int xid, struct cifsSesInfo *ses)
|
|||
rc = -ESHUTDOWN;
|
||||
}
|
||||
}
|
||||
if (pSMB)
|
||||
cifs_small_buf_release(pSMB);
|
||||
up(&ses->sesSem);
|
||||
up(&ses->sesSem)
|
||||
cifs_small_buf_release(pSMB);
|
||||
|
||||
/* if session dead then we do not need to do ulogoff,
|
||||
since server closed smb session, no sense reporting
|
||||
|
@ -1796,8 +1796,7 @@ CIFSSMBQueryReparseLinkInfo(const int xid, struct cifsTconInfo *tcon,
|
|||
}
|
||||
}
|
||||
qreparse_out:
|
||||
if (pSMB)
|
||||
cifs_buf_release(pSMB);
|
||||
cifs_buf_release(pSMB);
|
||||
|
||||
/* Note: On -EAGAIN error only caller can retry on handle based calls
|
||||
since file handle passed in no longer valid */
|
||||
|
@ -2520,12 +2519,11 @@ CIFSFindFirst(const int xid, struct cifsTconInfo *tcon,
|
|||
rc = SendReceive(xid, tcon->ses, (struct smb_hdr *) pSMB,
|
||||
(struct smb_hdr *) pSMBr, &bytes_returned, 0);
|
||||
|
||||
if (rc) {/* BB add logic to retry regular search if Unix search rejected unexpectedly by server */
|
||||
if (rc) {/* BB add logic to retry regular search if Unix search
|
||||
rejected unexpectedly by server */
|
||||
/* BB Add code to handle unsupported level rc */
|
||||
cFYI(1, ("Error in FindFirst = %d", rc));
|
||||
|
||||
if (pSMB)
|
||||
cifs_buf_release(pSMB);
|
||||
cifs_buf_release(pSMB);
|
||||
|
||||
/* BB eventually could optimize out free and realloc of buf */
|
||||
/* for this case */
|
||||
|
|
|
@ -226,7 +226,8 @@ cifs_create(struct inode *inode, struct dentry *direntry, int mode,
|
|||
}
|
||||
|
||||
if (rc != 0) {
|
||||
cFYI(1,("Create worked but get_inode_info failed with rc = %d",
|
||||
cFYI(1,
|
||||
("Create worked but get_inode_info failed rc = %d",
|
||||
rc));
|
||||
} else {
|
||||
direntry->d_op = &cifs_dentry_ops;
|
||||
|
@ -303,8 +304,7 @@ int cifs_mknod(struct inode *inode, struct dentry *direntry, int mode, dev_t dev
|
|||
up(&direntry->d_sb->s_vfs_rename_sem);
|
||||
if(full_path == NULL)
|
||||
rc = -ENOMEM;
|
||||
|
||||
if (full_path && (pTcon->ses->capabilities & CAP_UNIX)) {
|
||||
else if (pTcon->ses->capabilities & CAP_UNIX) {
|
||||
if(cifs_sb->mnt_cifs_flags & CIFS_MOUNT_SET_UID) {
|
||||
rc = CIFSSMBUnixSetPerms(xid, pTcon, full_path,
|
||||
mode,(__u64)current->euid,(__u64)current->egid,
|
||||
|
|
Loading…
Reference in New Issue
Block a user