summaryrefslogtreecommitdiffstats
path: root/sys/boot
diff options
context:
space:
mode:
authorsmh <smh@FreeBSD.org>2016-02-20 10:56:46 +0000
committersmh <smh@FreeBSD.org>2016-02-20 10:56:46 +0000
commit6c628d447ce5c7e865a54b0bea12abd8ddc71a69 (patch)
treeb639cbd1c69c209996f4d6533ed5ac6e28a32a13 /sys/boot
parent89c964ed8efbe4d9432db4b4e63ffe2a7e9f53b2 (diff)
downloadFreeBSD-src-6c628d447ce5c7e865a54b0bea12abd8ddc71a69.zip
FreeBSD-src-6c628d447ce5c7e865a54b0bea12abd8ddc71a69.tar.gz
MFC r272785:
Null terminate boot config buffer PR: 207070 Approved by: re (gjb) Sponsored by: Multiplay
Diffstat (limited to 'sys/boot')
-rw-r--r--sys/boot/i386/gptboot/gptboot.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/sys/boot/i386/gptboot/gptboot.c b/sys/boot/i386/gptboot/gptboot.c
index 5316706..a1f46eb 100644
--- a/sys/boot/i386/gptboot/gptboot.c
+++ b/sys/boot/i386/gptboot/gptboot.c
@@ -132,6 +132,7 @@ int
main(void)
{
char cmd[512], cmdtmp[512];
+ ssize_t sz;
int autoboot, dskupdated;
ufs_ino_t ino;
@@ -160,9 +161,10 @@ main(void)
for (;;) {
*kname = '\0';
if ((ino = lookup(PATH_CONFIG)) ||
- (ino = lookup(PATH_DOTCONFIG)))
- fsread(ino, cmd, sizeof(cmd));
-
+ (ino = lookup(PATH_DOTCONFIG))) {
+ sz = fsread(ino, cmd, sizeof(cmd) - 1);
+ cmd[(sz < 0) ? 0 : sz] = '\0';
+ }
if (*cmd != '\0') {
memcpy(cmdtmp, cmd, sizeof(cmdtmp));
if (parse(cmdtmp, &dskupdated))
OpenPOWER on IntegriCloud