From 7d54cb4cf226de237a9468ece4e12d2e7f643219 Mon Sep 17 00:00:00 2001 From: pedro Date: Thu, 19 Oct 2023 16:37:34 +0200 Subject: [PATCH] wanuptime: improve buffer validation (snprintf/strlcpy) --- .../src-rt-6.x.4708/router/wanuptime/wanuptime.c | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) diff --git a/release/src-rt-6.x.4708/router/wanuptime/wanuptime.c b/release/src-rt-6.x.4708/router/wanuptime/wanuptime.c index 355bf04748..63190ac253 100644 --- a/release/src-rt-6.x.4708/router/wanuptime/wanuptime.c +++ b/release/src-rt-6.x.4708/router/wanuptime/wanuptime.c @@ -13,23 +13,20 @@ int main(int argc, char *argv[]) char prefix[] = "wanXX"; if (argc > 1) - strcpy(prefix, argv[1]); + strlcpy(prefix, argv[0], sizeof(prefix)); else - strcpy(prefix, "wan"); + strlcpy(prefix, "wan", sizeof(prefix)); memset(wantime_file, 0, sizeof(wantime_file)); - sprintf(wantime_file, "/var/lib/misc/%s_time", prefix); + snprintf(wantime_file, sizeof(wantime_file), "/var/lib/misc/%s_time", prefix); - if (sysinfo(&si) == -1) { + if (sysinfo(&si) == -1) return 1; - } - if (check_wanup(prefix) && f_read(wantime_file, &uptime, sizeof(time_t)) == sizeof(uptime)) { + if (check_wanup(prefix) && f_read(wantime_file, &uptime, sizeof(time_t)) == sizeof(uptime)) printf("%ld\n", si.uptime - uptime); - } - else { + else printf("0\n"); - } return 0; }