Author: glebius
Date: Thu Aug 20 20:31:47 2020
New Revision: 364441
URL: https://svnweb.freebsd.org/changeset/base/364441

Log:
  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.
  
  Reviewed by:  tsoome

Modified:
  head/stand/i386/zfsboot/zfsboot.c

Modified: head/stand/i386/zfsboot/zfsboot.c
==============================================================================
--- head/stand/i386/zfsboot/zfsboot.c   Thu Aug 20 20:11:58 2020        
(r364440)
+++ head/stand/i386/zfsboot/zfsboot.c   Thu Aug 20 20:31:47 2020        
(r364441)
@@ -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);
        }
 
_______________________________________________
svn-src-all@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to