diff options
Diffstat (limited to 'user/sane/network.patch')
-rw-r--r-- | user/sane/network.patch | 25 |
1 files changed, 12 insertions, 13 deletions
diff --git a/user/sane/network.patch b/user/sane/network.patch index 4e422e28d..845bf9913 100644 --- a/user/sane/network.patch +++ b/user/sane/network.patch @@ -1,23 +1,22 @@ -diff --git a/sanei/sanei_tcp.c b/sanei/sanei_tcp.c -index a57d7c7..d0a1e92 100644 ---- a/sanei/sanei_tcp.c -+++ b/sanei/sanei_tcp.c -@@ -45,6 +45,7 @@ - #include <unistd.h> +--- sane-backends-1.0.30/sanei/sanei_tcp.c 2020-05-17 06:54:18.000000000 -0500 ++++ sane-backends-1.0.30/sanei/sanei_tcp.c 2020-06-10 14:10:06.980398975 -0500 +@@ -46,6 +46,7 @@ #include <stdlib.h> #include <string.h> + #include <limits.h> +#include <time.h> - #ifdef HAVE_WINSOCK2_H - #include <winsock2.h> -@@ -123,14 +124,27 @@ sanei_tcp_write(int fd, const u_char * buf, int count) - ssize_t - sanei_tcp_read(int fd, u_char * buf, int count) + #ifndef SSIZE_MAX + #define SSIZE_MAX LONG_MAX +@@ -130,6 +131,7 @@ sanei_tcp_read(int fd, u_char * buf, siz { -- ssize_t bytes_recv = 0, rc = 1; -+ ssize_t bytes_recv = 0, rc = 1; + size_t bytes_recv = 0; + ssize_t rc = 1; + int retry = 5; + if (count > SSIZE_MAX) { + errno = EINVAL; +@@ -139,9 +141,21 @@ sanei_tcp_read(int fd, u_char * buf, siz while (bytes_recv < count && rc > 0) { rc = recv(fd, buf+bytes_recv, count-bytes_recv, 0); |