summaryrefslogtreecommitdiffstats
path: root/sys
diff options
context:
space:
mode:
authorphk <phk@FreeBSD.org>2005-03-16 11:06:49 +0000
committerphk <phk@FreeBSD.org>2005-03-16 11:06:49 +0000
commit08503770f69a71fd817ba5ca08a51d13f02b9a96 (patch)
tree6fddc1d9dfddaa7f5f623507314b2ee11d6e2e10 /sys
parent3ff5706695ff3e610e9bc83df6b237006702cd96 (diff)
downloadFreeBSD-src-08503770f69a71fd817ba5ca08a51d13f02b9a96.zip
FreeBSD-src-08503770f69a71fd817ba5ca08a51d13f02b9a96.tar.gz
Fix a memoryleak in case of failed root filesystem mount.
Spotted by: Coverity via sam
Diffstat (limited to 'sys')
-rw-r--r--sys/kern/vfs_mount.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/sys/kern/vfs_mount.c b/sys/kern/vfs_mount.c
index 7508c7e..a2fc340 100644
--- a/sys/kern/vfs_mount.c
+++ b/sys/kern/vfs_mount.c
@@ -1244,8 +1244,11 @@ vfs_mountroot_try(const char *mountfrom)
path = malloc(MNAMELEN, M_MOUNT, M_WAITOK);
vfsname[0] = path[0] = 0;
sprintf(patt, "%%%d[a-z0-9]:%%%ds", MFSNAMELEN, MNAMELEN);
- if (sscanf(mountfrom, patt, vfsname, path) < 1)
+ if (sscanf(mountfrom, patt, vfsname, path) < 1) {
+ free(path, M_MOUNT);
+ free(vfsname, M_MOUNT);
return (error);
+ }
if (path[0] == '\0')
strcpy(path, ROOTNAME);
OpenPOWER on IntegriCloud