Commit 5a7ec870 authored by Linus Torvalds's avatar Linus Torvalds

Merge tag '6.8-rc3-ksmbd-server-fixes' of git://git.samba.org/ksmbd

Pull smb server fixes from Steve French:
 "Two ksmbd server fixes:

   - memory leak fix

   - a minor kernel-doc fix"

* tag '6.8-rc3-ksmbd-server-fixes' of git://git.samba.org/ksmbd:
  ksmbd: free aux buffer if ksmbd_iov_pin_rsp_read fails
  ksmbd: Add kernel-doc for ksmbd_extract_sharename() function
parents 4a7bbe75 108a020c
...@@ -261,6 +261,7 @@ char *ksmbd_casefold_sharename(struct unicode_map *um, const char *name) ...@@ -261,6 +261,7 @@ char *ksmbd_casefold_sharename(struct unicode_map *um, const char *name)
/** /**
* ksmbd_extract_sharename() - get share name from tree connect request * ksmbd_extract_sharename() - get share name from tree connect request
* @um: pointer to a unicode_map structure for character encoding handling
* @treename: buffer containing tree name and share name * @treename: buffer containing tree name and share name
* *
* Return: share name on success, otherwise error * Return: share name on success, otherwise error
......
...@@ -6173,8 +6173,10 @@ static noinline int smb2_read_pipe(struct ksmbd_work *work) ...@@ -6173,8 +6173,10 @@ static noinline int smb2_read_pipe(struct ksmbd_work *work)
err = ksmbd_iov_pin_rsp_read(work, (void *)rsp, err = ksmbd_iov_pin_rsp_read(work, (void *)rsp,
offsetof(struct smb2_read_rsp, Buffer), offsetof(struct smb2_read_rsp, Buffer),
aux_payload_buf, nbytes); aux_payload_buf, nbytes);
if (err) if (err) {
kvfree(aux_payload_buf);
goto out; goto out;
}
kvfree(rpc_resp); kvfree(rpc_resp);
} else { } else {
err = ksmbd_iov_pin_rsp(work, (void *)rsp, err = ksmbd_iov_pin_rsp(work, (void *)rsp,
...@@ -6384,8 +6386,10 @@ int smb2_read(struct ksmbd_work *work) ...@@ -6384,8 +6386,10 @@ int smb2_read(struct ksmbd_work *work)
err = ksmbd_iov_pin_rsp_read(work, (void *)rsp, err = ksmbd_iov_pin_rsp_read(work, (void *)rsp,
offsetof(struct smb2_read_rsp, Buffer), offsetof(struct smb2_read_rsp, Buffer),
aux_payload_buf, nbytes); aux_payload_buf, nbytes);
if (err) if (err) {
kvfree(aux_payload_buf);
goto out; goto out;
}
ksmbd_fd_put(work, fp); ksmbd_fd_put(work, fp);
return 0; return 0;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment