提交 4a6d87f1 编写于 作者: S Steve French

[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)
上级 a47fd3f5
......@@ -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,
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册