Skip to content

Commit

Permalink
[CIFS] Add missing check for path name allocation failure. Remove four
Browse files Browse the repository at this point in the history
redundant null pointer checks before cifs_buf_release.

Found by coverity analyzer.

Signed-off-by: Steve French (sfrench@us.ibm.com)
  • Loading branch information
Steve French committed Aug 13, 2005
1 parent a47fd3f commit 4a6d87f
Show file tree
Hide file tree
Showing 2 changed files with 14 additions and 16 deletions.
24 changes: 11 additions & 13 deletions fs/cifs/cifssmb.c
Original file line number Diff line number Diff line change
Expand Up @@ -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;
}

Expand Down Expand Up @@ -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
Expand Down Expand Up @@ -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 */
Expand Down Expand Up @@ -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 */
Expand Down
6 changes: 3 additions & 3 deletions fs/cifs/dir.c
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down Expand Up @@ -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,
Expand Down

0 comments on commit 4a6d87f

Please sign in to comment.