Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 8 Oct 2021 06:11:04 GMT
From:      Kyle Evans <kevans@FreeBSD.org>
To:        src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org
Subject:   git: 4d997b340dd7 - stable/12 - When we have a command returned by zfs_nextboot() that is longer than command in the loader.conf, the latter needs to be nul terminated, otherwise garbage trailer left from zfs_nextboot() will be passed to parse_cmd() together with loader.conf command.
Message-ID:  <202110080611.1986B4Hm007565@gitrepo.freebsd.org>

next in thread | raw e-mail | index | archive | help
The branch stable/12 has been updated by kevans:

URL: https://cgit.FreeBSD.org/src/commit/?id=4d997b340dd7ee561b2f44bbcef3c532108640e6

commit 4d997b340dd7ee561b2f44bbcef3c532108640e6
Author:     Gleb Smirnoff <glebius@FreeBSD.org>
AuthorDate: 2020-08-20 20:31:47 +0000
Commit:     Kyle Evans <kevans@FreeBSD.org>
CommitDate: 2021-10-08 05:24:27 +0000

    When we have a command returned by zfs_nextboot() that is longer
    than command in the loader.conf, the latter needs to be nul terminated,
    otherwise garbage trailer left from zfs_nextboot() will be passed to
    parse_cmd() together with loader.conf command.
    
    While here, reset cmd to empty string if read() returns error.
    
    (cherry picked from commit c7dd069c70d465298f14553d981bfe5e2ffd0459)
---
 stand/i386/zfsboot/zfsboot.c | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/stand/i386/zfsboot/zfsboot.c b/stand/i386/zfsboot/zfsboot.c
index e387d4a47c9d..81a6d74abc7b 100644
--- a/stand/i386/zfsboot/zfsboot.c
+++ b/stand/i386/zfsboot/zfsboot.c
@@ -248,7 +248,12 @@ main(void)
 		fd = open(PATH_DOTCONFIG, O_RDONLY);
 
 	if (fd != -1) {
-		read(fd, cmd, sizeof (cmd));
+		ssize_t cmdlen;
+
+		if ((cmdlen = read(fd, cmd, sizeof(cmd))) > 0)
+			cmd[cmdlen] = '\0';
+		else
+			*cmd = '\0';
 		close(fd);
 	}
 



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?202110080611.1986B4Hm007565>