summaryrefslogtreecommitdiff
path: root/sanei/sanei_tcp.c
diff options
context:
space:
mode:
authorJörg Frings-Fürst <debian@jff-webhosting.net>2020-05-23 09:52:20 +0200
committerJörg Frings-Fürst <debian@jff-webhosting.net>2020-05-23 09:52:20 +0200
commitb3ca7a7c8bae4740ab95d043325972bdaf3c45ef (patch)
tree74966ddb0a35b15b78f792c34ca0b6fd56e12c6a /sanei/sanei_tcp.c
parent1ae6cba5016d9ea065d064915da55afe69c7c762 (diff)
parent9c23ed018d72eed2554f4f9cff1ae6e6bb0cd479 (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.c17
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)
{