@@ -2641,10 +2641,10 @@ SMB2_read(const unsigned int xid, struct cifs_io_parms *io_parms,
{
int resp_buftype, rc = -EACCES;
struct smb2_read_plain_req *req = NULL;
- struct smb2_read_rsp *rsp = NULL;
+ struct smb2_read_rsp *rsp;
struct smb2_sync_hdr *shdr;
struct kvec iov[2];
- struct kvec rsp_iov;
+ struct kvec rsp_iov = { NULL, 0 };
unsigned int total_len;
__be32 req_len;
struct smb_rqst rqst = { .rq_iov = iov,
@@ -2671,6 +2671,10 @@ SMB2_read(const unsigned int xid, struct cifs_io_parms *io_parms,
cifs_small_buf_release(req);
rsp = (struct smb2_read_rsp *)rsp_iov.iov_base;
+ if (rsp == NULL) {
+ cifs_dbg(VFS, "rsp is NULL in read\n");
+ return -EIO;
+ }
shdr = get_sync_hdr(rsp);
if (shdr->Status == STATUS_END_OF_FILE) {
Signed-off-by: Ronnie Sahlberg <lsahlber@redhat.com> --- fs/cifs/smb2pdu.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-)