From ebb5a3a37fde55abcad6c320cd05ce6668506263 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Fri, 2 Jan 2026 01:48:17 +0000 Subject: [PATCH] Address code review feedback: fix buffer overflows and remove remaining user configs Co-authored-by: johndoe6345789 <224850594+johndoe6345789@users.noreply.github.com> --- scripts/docker-image-create-uefi-old.sh | 1 - scripts/docker-image-create-uefi.sh | 1 - src/init.c | 11 +++++++++-- 3 files changed, 9 insertions(+), 4 deletions(-) diff --git a/scripts/docker-image-create-uefi-old.sh b/scripts/docker-image-create-uefi-old.sh index 31bb90e..957879e 100755 --- a/scripts/docker-image-create-uefi-old.sh +++ b/scripts/docker-image-create-uefi-old.sh @@ -90,7 +90,6 @@ chmod 755 /staging/root/sbin/init echo "sparkos" > /staging/root/etc/hostname echo "127.0.0.1 localhost" > /staging/root/etc/hosts echo "127.0.1.1 sparkos" >> /staging/root/etc/hosts -echo "spark:x:1000:" >> /staging/root/etc/group # Copy README to root partition cp /build/config/image-readme.txt /staging/root/README.txt diff --git a/scripts/docker-image-create-uefi.sh b/scripts/docker-image-create-uefi.sh index a2afd64..1eb6390 100755 --- a/scripts/docker-image-create-uefi.sh +++ b/scripts/docker-image-create-uefi.sh @@ -65,7 +65,6 @@ chmod 755 /staging/root/sbin/init echo "sparkos" > /staging/root/etc/hostname echo "127.0.0.1 localhost" > /staging/root/etc/hosts echo "127.0.1.1 sparkos" >> /staging/root/etc/hosts -echo "spark:x:1000:" >> /staging/root/etc/group # Copy README to root partition cp /build/config/image-readme.txt /staging/root/README.txt diff --git a/src/init.c b/src/init.c index eb0a353..59304b6 100644 --- a/src/init.c +++ b/src/init.c @@ -23,6 +23,7 @@ #include #include #include +#include static void signal_handler(int sig) { if (sig == SIGCHLD) { @@ -81,6 +82,7 @@ static int init_network_interface(const char *ifname) { // Prepare interface request structure memset(&ifr, 0, sizeof(ifr)); strncpy(ifr.ifr_name, ifname, IFNAMSIZ - 1); + ifr.ifr_name[IFNAMSIZ - 1] = '\0'; // Ensure null termination // Get current flags if (ioctl(sock, SIOCGIFFLAGS, &ifr) < 0) { @@ -148,12 +150,17 @@ static int mount_fs(const char *source, const char *target, const char *fstype, * No dependency on mkdir binary */ static int mkdir_p(const char *path) { - char tmp[256]; + char tmp[PATH_MAX]; char *p = NULL; size_t len; + len = strlen(path); + if (len >= PATH_MAX) { + errno = ENAMETOOLONG; + return -1; + } + snprintf(tmp, sizeof(tmp), "%s", path); - len = strlen(tmp); if (tmp[len - 1] == '/') tmp[len - 1] = 0;