svn commit: r188116 - in stable/7/sbin/geom: . class/part core misc

Ulf Lilleengen lulf at FreeBSD.org
Wed Feb 4 09:35:22 PST 2009


Author: lulf
Date: Wed Feb  4 17:35:21 2009
New Revision: 188116
URL: http://svn.freebsd.org/changeset/base/188116

Log:
  MFC r188017:
  - 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>

Modified:
  stable/7/sbin/geom/   (props changed)
  stable/7/sbin/geom/class/part/   (props changed)
  stable/7/sbin/geom/core/geom.c
  stable/7/sbin/geom/misc/   (props changed)

Modified: stable/7/sbin/geom/core/geom.c
==============================================================================
--- stable/7/sbin/geom/core/geom.c	Wed Feb  4 17:10:01 2009	(r188115)
+++ stable/7/sbin/geom/core/geom.c	Wed Feb  4 17:35:21 2009	(r188116)
@@ -480,13 +480,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");
 
@@ -512,7 +512,7 @@ load_library(void)
 		}
 		break;
 	}
-	free(totalpath);
+	free(tofree);
 	/* No library was found, but standard commands can still be used */
 	if (ret == -1)
 		return;


More information about the svn-src-stable mailing list