• J
    cifs: fix error handling cifs_user_readv · bae9f746
    Jeff Layton 提交于
    Coverity says:
    
    *** CID 1202537:  Dereference after null check  (FORWARD_NULL)
    /fs/cifs/file.c: 2873 in cifs_user_readv()
    2867     		cur_len = min_t(const size_t, len - total_read, cifs_sb->rsize);
    2868     		npages = DIV_ROUND_UP(cur_len, PAGE_SIZE);
    2869
    2870     		/* allocate a readdata struct */
    2871     		rdata = cifs_readdata_alloc(npages,
    2872     					    cifs_uncached_readv_complete);
    >>>     CID 1202537:  Dereference after null check  (FORWARD_NULL)
    >>>     Comparing "rdata" to null implies that "rdata" might be null.
    2873     		if (!rdata) {
    2874     			rc = -ENOMEM;
    2875     			goto error;
    2876     		}
    2877
    2878     		rc = cifs_read_allocate_pages(rdata, npages);
    
    ...when we "goto error", rc will be non-zero, and then we end up trying
    to do a kref_put on the rdata (which is NULL). Fix this by replacing
    the "goto error" with a "break".
    
    Reported-by: <scan-admin@coverity.com>
    Signed-off-by: NJeff Layton <jlayton@redhat.com>
    Signed-off-by: NSteve French <smfrench@gmail.com>
    bae9f746
file.c 96.4 KB