From 4ed27ca97ae7f21f56d038b6366d72975711e175 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Deuc=D0=B5?= <shurd@sasktel.net>
Date: Fri, 22 Mar 2024 05:15:06 -0400
Subject: [PATCH] Use safer string things...

We really need strlcpy()/strlcat() wrappers in xpdev.
---
 src/syncterm/ripper.c | 14 +++++++++-----
 1 file changed, 9 insertions(+), 5 deletions(-)

diff --git a/src/syncterm/ripper.c b/src/syncterm/ripper.c
index ffc5eb7122..4fd5f67f97 100644
--- a/src/syncterm/ripper.c
+++ b/src/syncterm/ripper.c
@@ -15479,11 +15479,15 @@ do_skypix(char *buf, size_t len)
 					break;
 				char *dldir = strdup(rip.bbs->dldir);
 				strcpy(rip.bbs->dldir, cache_path);
-				strcat(cache_path, p);
-				suspend_rip(true);
-				xmodem_download(rip.bbs, XMODEM | CRC | RECV, cache_path);
-				suspend_rip(false);
-				strcpy(rip.bbs->dldir, dldir);
+				// TODO: Handle error...
+				if ((strlen(cache_path) + strlen(p) + 1) <= sizeof(cache_path)) {
+					strcat(cache_path, p);
+					suspend_rip(true);
+					xmodem_download(rip.bbs, XMODEM | CRC | RECV, cache_path);
+					suspend_rip(false);
+				}
+				// TODO: strlcpy() needed in xpdev
+				strncpy(rip.bbs->dldir, dldir, sizeof(rip.bbs->dldir));
 				free(dldir);
 			}
 			break;
-- 
GitLab