summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTest_User <hax@andrewyu.org>2023-06-18 18:44:42 -0400
committerTest_User <hax@andrewyu.org>2023-06-18 18:44:42 -0400
commit83cf1be35bbb7ba9868e61cb4a5406848e032c5a (patch)
tree9f659b9e179a36a19a6e75f22d71835c9aa08b32
parentdadc739154d27429c55e58ea3dd0ca1284694097 (diff)
downloadcoupserv-83cf1be35bbb7ba9868e61cb4a5406848e032c5a.tar.gz
coupserv-83cf1be35bbb7ba9868e61cb4a5406848e032c5a.zip
uint -1 is bad
-rw-r--r--main.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/main.c b/main.c
index 21cc727..3618105 100644
--- a/main.c
+++ b/main.c
@@ -51,7 +51,14 @@ void *client_loop(void *ign) {
while (1) {
char data[512];
pthread_mutex_unlock(&send_lock); // TODO: proper locking, this works for now but is certainly inefficient
- uint64_t new_len = read(client_fd, data, 512);
+ uint64_t new_len;
+ {
+ ssize_t len = read(client_fd, data, 512);
+ if (len < 0)
+ new_len = 0;
+ else
+ new_len = len;
+ }
pthread_mutex_lock(&send_lock);
if (new_len == 0) {