From 25cdf12ab055e88d3ce007ab9324e52c86112393 Mon Sep 17 00:00:00 2001 From: yellows8 Date: Sun, 24 May 2020 15:50:22 -0400 Subject: [PATCH] ldn: Use fixed-size buffer for sendto(), and make sure the data from recvfrom() is NUL-terminated. --- network/ldn/source/main.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/network/ldn/source/main.c b/network/ldn/source/main.c index 26b111b..6b161e4 100644 --- a/network/ldn/source/main.c +++ b/network/ldn/source/main.c @@ -291,7 +291,7 @@ int main(int argc, char **argv) else if (kDown & KEY_DUP) strncpy(tmpstr, "Button DUP pressed.", sizeof(tmpstr)-1); else if (kDown & KEY_DDOWN) strncpy(tmpstr, "Button DDOWN pressed.", sizeof(tmpstr)-1); - ssize_t ret = sendto(sockfd, tmpstr, strlen(tmpstr), 0, (struct sockaddr*) &serv_addr, sizeof(struct sockaddr_in)); + ssize_t ret = sendto(sockfd, tmpstr, sizeof(tmpstr), 0, (struct sockaddr*) &serv_addr, sizeof(struct sockaddr_in)); int tmp = errno; printf("sendto(): %ld", ret); if (ret < 0) printf(", %s", strerror(tmp)); @@ -306,6 +306,7 @@ int main(int argc, char **argv) socklen_t fromlen = sizeof(struct sockaddr_in); ssize_t ret = recvfrom(sockfd, tmpstr, sizeof(tmpstr), MSG_DONTWAIT, (struct sockaddr*) &src_addr, &fromlen); + tmpstr[sizeof(tmpstr)-1] = 0; if (ret>0) printf("Received data: %s\n", tmpstr); }