summaryrefslogtreecommitdiffstats
path: root/sbin/geom/core/geom.c
diff options
context:
space:
mode:
authorlulf <lulf@FreeBSD.org>2009-02-02 19:22:53 +0000
committerlulf <lulf@FreeBSD.org>2009-02-02 19:22:53 +0000
commit2660392853b1e799fc0aedf0753fdb1180f79b8b (patch)
tree58c4e753d0740b29bf4fd5b1088d9fb7bf9107ac /sbin/geom/core/geom.c
parenteec42a8d3c4be0cbd13b8a3a4284ae818f25f8ad (diff)
downloadFreeBSD-src-2660392853b1e799fc0aedf0753fdb1180f79b8b.zip
FreeBSD-src-2660392853b1e799fc0aedf0753fdb1180f79b8b.tar.gz
- Use a separate pointer to the allocated memory for freeing, as strsep may
modify the pointer argument passed to it. This triggered an assert in malloc when a geom command being run under the livefs environment. PR: bin/130632 Submitted by: Dimitry Andric <dimitry -at- andric.com> Pointy hat to: me MFC after: 2 days
Diffstat (limited to 'sbin/geom/core/geom.c')
-rw-r--r--sbin/geom/core/geom.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/sbin/geom/core/geom.c b/sbin/geom/core/geom.c
index f0d82e8..f7656dc 100644
--- a/sbin/geom/core/geom.c
+++ b/sbin/geom/core/geom.c
@@ -487,13 +487,13 @@ library_path(void)
static void
load_library(void)
{
- char *curpath, path[MAXPATHLEN], *totalpath;
+ char *curpath, path[MAXPATHLEN], *tofree, *totalpath;
uint32_t *lib_version;
void *dlh;
int ret;
ret = 0;
- totalpath = strdup(library_path());
+ tofree = totalpath = strdup(library_path());
if (totalpath == NULL)
err(EXIT_FAILURE, "Not enough memory for library path");
@@ -519,7 +519,7 @@ load_library(void)
}
break;
}
- free(totalpath);
+ free(tofree);
/* No library was found, but standard commands can still be used */
if (ret == -1)
return;
OpenPOWER on IntegriCloud