[smb3] unreachable code and memory leaks

From: Gustavo A. R. Silva
Date: Mon Jun 18 2018 - 09:08:15 EST


Hi Steve,

While doing some static analysis I came across the following piece of code at fs/cifs/smb2pdu.c:2017:

2017 if (n_iov > 2) {
2018 struct create_context *ccontext =
2019 (struct create_context *)iov[n_iov-1].iov_base;
2020 ccontext->Next =
2021 cpu_to_le32(iov[n_iov-1].iov_len);
2022 }

The code above is unreachable because n_iov is initialized to 2 and, its value is never updated.
I'm not sure how to fix this.

Also, it seems there are multiple places in which memory allocated for *path* is leaking:

1946 else
1947 return -EIO;

1951 if (rc)
1952 return rc;

1987 if (rc) {
1988 cifs_small_buf_release(req);
1989 return rc;
1990 }

and more...

Thanks
--
Gustavo