diff options
author | Douglas Bagnall <douglas.bagnall@catalyst.net.nz> | 2019-05-08 16:46:33 +1200 |
---|---|---|
committer | Andrew Bartlett <abartlet@samba.org> | 2019-05-10 01:15:17 +0000 |
commit | 79629b42cde3fd1e932677d6388cff90a2cc3cd2 (patch) | |
tree | 0a55076dc11c60344b5a963898ed3259e43506e6 /source4 | |
parent | 597709aac99d2bccb015806f02049918b1ba79bd (diff) | |
download | samba-79629b42cde3fd1e932677d6388cff90a2cc3cd2.tar.gz |
s4/policy/gp_filesys: avoid SIZE_MAX smbcli write (CID 1034779)
Signed-off-by: Douglas Bagnall <douglas.bagnall@catalyst.net.nz>
Reviewed-by: Andrew Bartlett <abartlet@samba.org>
Diffstat (limited to 'source4')
-rw-r--r-- | source4/lib/policy/gp_filesys.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/source4/lib/policy/gp_filesys.c b/source4/lib/policy/gp_filesys.c index 267762dd27d..69fb143c687 100644 --- a/source4/lib/policy/gp_filesys.c +++ b/source4/lib/policy/gp_filesys.c @@ -482,6 +482,12 @@ static NTSTATUS push_recursive (struct gp_context *gp_ctx, const char *local_pat } total_read = 0; while ((nread = read(local_fd, &buf, sizeof(buf)))) { + if (nread == -1) { + DBG_ERR("read failed with errno %s\n", + strerror(errno)); + status = NT_STATUS_UNSUCCESSFUL; + goto done; + } smbcli_write(gp_ctx->cli->tree, remote_fd, 0, &buf, total_read, nread); total_read += nread; |