diff --git a/proc/ksym.c b/proc/ksym.c index e9bd8203..ce43db61 100644 --- a/proc/ksym.c +++ b/proc/ksym.c @@ -479,7 +479,7 @@ int open_psdb_message(const char *restrict override, void (*message)(const char }; struct stat sbuf; struct utsname uts; - char path[64]; + char path[128]; const char **fmt = sysmap_paths; const char *sm; @@ -509,9 +509,10 @@ int open_psdb_message(const char *restrict override, void (*message)(const char // finally, search for the System.map file uname(&uts); + path[sizeof path - 1] = '\0'; do{ int did_ksyms = 0; - snprintf(path, sizeof path, *fmt, uts.release); + snprintf(path, sizeof path - 1, *fmt, uts.release); if(!stat(path, &sbuf)){ if (did_ksyms++) read_and_parse(); if (sysmap_mmap(path, message)) return 0; diff --git a/sysctl.c b/sysctl.c index 5e10d159..613688cd 100644 --- a/sysctl.c +++ b/sysctl.c @@ -313,9 +313,9 @@ static int WriteSetting(const char *setting) { * */ static int Preload(const char *restrict const filename) { + char oneline[256]; + char buffer[256]; FILE *fp; - char oneline[257]; - char buffer[257]; char *t; int n = 0; int rc = 0; @@ -326,8 +326,7 @@ static int Preload(const char *restrict const filename) { return -1; } - while (fgets(oneline, 256, fp)) { - oneline[256] = 0; + while (fgets(oneline, sizeof oneline, fp)) { n++; t = StripLeadingAndTrailingSpaces(oneline);