diff options
author | Jörg Frings-Fürst <debian@jff-webhosting.net> | 2020-05-23 09:52:20 +0200 |
---|---|---|
committer | Jörg Frings-Fürst <debian@jff-webhosting.net> | 2020-05-23 09:52:20 +0200 |
commit | b3ca7a7c8bae4740ab95d043325972bdaf3c45ef (patch) | |
tree | 74966ddb0a35b15b78f792c34ca0b6fd56e12c6a /sanei/sanei_tcp.c | |
parent | 1ae6cba5016d9ea065d064915da55afe69c7c762 (diff) | |
parent | 9c23ed018d72eed2554f4f9cff1ae6e6bb0cd479 (diff) |
Update upstream source from tag 'upstream/1.0.30'
Update to upstream version '1.0.30'
with Debian dir d1980efdd93517d429af686634543ede4211442d
Diffstat (limited to 'sanei/sanei_tcp.c')
-rw-r--r-- | sanei/sanei_tcp.c | 17 |
1 files changed, 14 insertions, 3 deletions
diff --git a/sanei/sanei_tcp.c b/sanei/sanei_tcp.c index 87a73d1..d6f8efe 100644 --- a/sanei/sanei_tcp.c +++ b/sanei/sanei_tcp.c @@ -45,6 +45,11 @@ #include <unistd.h> #include <stdlib.h> #include <string.h> +#include <limits.h> + +#ifndef SSIZE_MAX +#define SSIZE_MAX LONG_MAX +#endif #ifdef HAVE_WINSOCK2_H #include <winsock2.h> @@ -115,15 +120,21 @@ sanei_tcp_close(int fd) } ssize_t -sanei_tcp_write(int fd, const u_char * buf, int count) +sanei_tcp_write(int fd, const u_char * buf, size_t count) { return send(fd, buf, count, 0); } ssize_t -sanei_tcp_read(int fd, u_char * buf, int count) +sanei_tcp_read(int fd, u_char * buf, size_t count) { - ssize_t bytes_recv = 0, rc = 1; + size_t bytes_recv = 0; + ssize_t rc = 1; + + if (count > SSIZE_MAX) { + errno = EINVAL; + return -1; + } while (bytes_recv < count && rc > 0) { |