Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 4a6d87f1 authored by Steve French's avatar Steve French
Browse files

[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: default avatarSteve French <(sfrench@us.ibm.com)>
parent a47fd3f5
Loading
Loading
Loading
Loading
+11 −13
Original line number Diff line number Diff line
@@ -415,14 +415,15 @@ 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);
	return rc;
}
@@ -537,9 +538,8 @@ CIFSSMBLogoff(const int xid, struct cifsSesInfo *ses)
			rc = -ESHUTDOWN;
		}
	}
	if (pSMB)
	up(&ses->sesSem)	
	cifs_small_buf_release(pSMB);
	up(&ses->sesSem);

	/* if session dead then we do not need to do ulogoff,
		since server closed smb session, no sense reporting 
@@ -1796,7 +1796,6 @@ CIFSSMBQueryReparseLinkInfo(const int xid, struct cifsTconInfo *tcon,
		}
	}
qreparse_out:
	if (pSMB)
	cifs_buf_release(pSMB);

	/* Note: On -EAGAIN error only caller can retry on handle based calls
@@ -2520,11 +2519,10 @@ 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);

		/* BB eventually could optimize out free and realloc of buf */
+3 −3
Original line number Diff line number Diff line
@@ -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,