summaryrefslogtreecommitdiff
path: root/source4
diff options
context:
space:
mode:
authorDouglas Bagnall <douglas.bagnall@catalyst.net.nz>2019-05-08 16:46:33 +1200
committerAndrew Bartlett <abartlet@samba.org>2019-05-10 01:15:17 +0000
commit79629b42cde3fd1e932677d6388cff90a2cc3cd2 (patch)
tree0a55076dc11c60344b5a963898ed3259e43506e6 /source4
parent597709aac99d2bccb015806f02049918b1ba79bd (diff)
downloadsamba-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.c6
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;