Date: Sun, 8 Sep 2013 20:17:20 -0400 From: J David <j.david.lists@gmail.com> To: freebsd-stable <freebsd-stable@freebsd.org> Subject: Small bug in sys/kern/vfs_mountroot.c Message-ID: <CABXB=RQrcmqSf73MoGRLpUB7KT01Lx4ENJHnHn6nTcggKo7G_A@mail.gmail.com>
next in thread | raw e-mail | index | archive | help
In releng/9.2 (and possibly other versions), in kern/vfs_mountroot.c, in parse_mount, there appears to be a small bug. The expression sizeof(errmsg) is used in a strlcpy. This would work if errmsg were an array, but it's a char*, so sizeof() returns the pointer's size and this limits the error message to seven characters + NULL (on amd64), translating "unknown file system" into the moderately less helpful "unknown." A "patch" is below. (It's a tiny fix.) Index: vfs_mountroot.c =================================================================== --- vfs_mountroot.c (revision 255409) +++ vfs_mountroot.c (working copy) @@ -709,7 +709,7 @@ errmsg = malloc(ERRMSGL, M_TEMP, M_WAITOK | M_ZERO); if (vfs_byname(fs) == NULL) { - strlcpy(errmsg, "unknown file system", sizeof(errmsg)); + strlcpy(errmsg, "unknown file system", ERRMSGL); error = ENOENT; goto out; }
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CABXB=RQrcmqSf73MoGRLpUB7KT01Lx4ENJHnHn6nTcggKo7G_A>