Fix snprintf with non format
snprintf was being called with environment variable. If variable had format string (like %s) then program would crash.
This commit is contained in:
parent
38c867d2a8
commit
8988b02ee1
|
|
@ -535,7 +535,7 @@ int main(int argc, char *argv[])
|
||||||
}
|
}
|
||||||
|
|
||||||
if (getenv("RTACCT_HISTORY"))
|
if (getenv("RTACCT_HISTORY"))
|
||||||
snprintf(hist_name, sizeof(hist_name), getenv("RTACCT_HISTORY"));
|
snprintf(hist_name, sizeof(hist_name), "%s", getenv("RTACCT_HISTORY"));
|
||||||
else
|
else
|
||||||
sprintf(hist_name, "/tmp/.rtacct.u%d", getuid());
|
sprintf(hist_name, "/tmp/.rtacct.u%d", getuid());
|
||||||
|
|
||||||
|
|
@ -563,7 +563,10 @@ int main(int argc, char *argv[])
|
||||||
exit(-1);
|
exit(-1);
|
||||||
}
|
}
|
||||||
if (stb.st_size != sizeof(*hist_db))
|
if (stb.st_size != sizeof(*hist_db))
|
||||||
write(fd, kern_db, sizeof(*hist_db));
|
if (write(fd, kern_db, sizeof(*hist_db)) < 0) {
|
||||||
|
perror("rtacct: write history file");
|
||||||
|
exit(-1);
|
||||||
|
}
|
||||||
|
|
||||||
hist_db = mmap(NULL, sizeof(*hist_db),
|
hist_db = mmap(NULL, sizeof(*hist_db),
|
||||||
PROT_READ|PROT_WRITE,
|
PROT_READ|PROT_WRITE,
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue