]> git.ipfire.org Git - thirdparty/samba.git/commitdiff
s4/policy/gp_filesys: avoid SIZE_MAX smbcli write (CID 1034779)
authorDouglas Bagnall <douglas.bagnall@catalyst.net.nz>
Wed, 8 May 2019 04:46:33 +0000 (16:46 +1200)
committerAndrew Bartlett <abartlet@samba.org>
Fri, 10 May 2019 01:15:17 +0000 (01:15 +0000)
Signed-off-by: Douglas Bagnall <douglas.bagnall@catalyst.net.nz>
Reviewed-by: Andrew Bartlett <abartlet@samba.org>
source4/lib/policy/gp_filesys.c

index 267762dd27dbe99bec0de187161711376346a921..69fb143c68703d2774d2d605978734974b641f55 100644 (file)
@@ -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;