--- old/usr/src/cmd/rmformat/rmf_misc.c	2014-05-04 18:28:36.306711833 +0100
+++ new/usr/src/cmd/rmformat/rmf_misc.c	2014-05-04 18:28:36.313818062 +0100
@@ -17,11 +17,12 @@
  * information: Portions Copyright [yyyy] [name of copyright owner]
  *
  * CDDL HEADER END
- */
-
-/*
+ *
+ *
  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
  * Use is subject to license terms.
+ *
+ * Copyright 2014 Andrew Stormont.
  */
 
 /*
@@ -87,7 +88,6 @@
  * Function prototypes.
  */
 static int		my_umount(char *mountp);
-static int		my_volrmmount(char *real_name);
 static int		vol_name_to_dev_node(char *vname, char *found);
 static int		vol_lookup(char *supplied, char *found);
 static device_t		*get_device(char *user_supplied, char *node);
@@ -223,111 +223,6 @@
 
 }
 
-int32_t
-check_and_unmount_vold(char *device_name, int32_t flag)
-{
-	char *real_name;
-	char *nm;
-	char tmp_path_name[PATH_MAX];
-	struct stat stat_buf;
-	int32_t ret_val = 0;
-	struct	mnttab	*mntp;
-	FILE	*fp;
-	int nl;
-
-	DPRINTF1("Device name %s\n", device_name);
-
-	if (volmgt_running() == 0) {
-		DPRINTF("Vold not running\n");
-		return (0);
-	}
-	if ((nm = volmgt_symname(device_name)) == NULL) {
-		DPRINTF("path not managed\n");
-		real_name = media_findname(device_name);
-	} else {
-		DPRINTF1("path managed as %s\n", nm);
-		real_name = media_findname(nm);
-		DPRINTF1("real name %s\n", real_name);
-	}
-
-	if (real_name == NULL)
-		return (-1);
-
-	/*
-	 * To find out whether the device has been mounted by
-	 * volume manager...
-	 *
-	 * Convert the real name to a block device address.
-	 * Do a partial match with the mnttab entries.
-	 * Make sure the match is in the beginning to avoid if
-	 * anybody puts a label similiar to volume manager path names.
-	 * Then use "volrmmount -e <dev_name>" if -U flag is set.
-	 */
-
-	nl = strlen("/vol/dev/");
-
-	if (strncmp(real_name, "/vol/dev/", nl) != 0)
-			return (0);
-	if (real_name[nl] == 'r') {
-		(void) snprintf(tmp_path_name, PATH_MAX, "%s%s", "/vol/dev/",
-		    &real_name[nl + 1]);
-	} else {
-		(void) snprintf(tmp_path_name, PATH_MAX, "%s", real_name);
-	}
-	DPRINTF1("%s \n", tmp_path_name);
-	ret_val = stat(tmp_path_name, &stat_buf);
-	if (ret_val < 0) {
-		PERROR("Could not stat");
-		return (-1);
-	}
-
-	fp = fopen("/etc/mnttab", "r");
-
-	if (fp == NULL) {
-		PERROR("Could not open /etc/mnttab");
-		return (-1);
-	}
-
-	mntp = (struct mnttab *)malloc(sizeof (struct mnttab));
-	if (mntp == NULL) {
-		PERROR("malloc failed");
-		(void) fclose(fp);
-		return (-1);
-	}
-	errno = 0;
-	while (getmntent(fp, mntp) == 0) {
-		if (errno != 0) {
-			PERROR("Error with mnttab");
-			(void) fclose(fp);
-			return (-1);
-		}
-		/* Is it a probable entry? */
-		DPRINTF1(" %s \n", mntp->mnt_special);
-		if (strstr(mntp->mnt_special, tmp_path_name) !=
-		    mntp->mnt_special) {
-			/* Skip to next entry */
-			continue;
-		} else {
-			DPRINTF1("Found!! %s\n", mntp->mnt_special);
-			ret_val = 1;
-			break;
-		}
-	}
-
-	if (ret_val == 1) {
-		if (flag) {
-			if (my_volrmmount(real_name) < 0) {
-				ret_val = -1;
-			}
-		} else {
-			ret_val = -1;
-		}
-	}
-	(void) fclose(fp);
-	free(mntp);
-	return (ret_val);
-}
-
 /*
  * This routine checks if a device has mounted partitions. The
  * device name is assumed to be /dev/rdsk/cNtNdNsN. So, this can
@@ -1067,51 +962,6 @@
 	return (-1);
 }
 
-static int
-my_volrmmount(char *real_name)
-{
-	int pid, rval;
-
-	/* Turn on the privileges. */
-	(void) __priv_bracket(PRIV_ON);
-
-	pid = fork();
-
-	/* Turn off the privileges. */
-	(void) __priv_bracket(PRIV_OFF);
-
-	/* create a child to unmount the path */
-	if (pid < 0) {
-		PERROR("fork failed");
-		exit(0);
-	}
-
-	if (pid == 0) {
-		/* the child */
-		/* get rid of those nasty err messages */
-		DPRINTF1("call_unmount_prog: calling %s \n",
-		    "/usr/bin/volrmmount");
-
-		/* Turn on the privileges. */
-		(void) __priv_bracket(PRIV_ON);
-		if (execl("/usr/bin/volrmmount", "/usr/bin/volrmmount", "-e",
-		    real_name, NULL) < 0) {
-			PERROR("volrmmount exec failed");
-			/* Turn off the privileges */
-			(void) __priv_bracket(PRIV_OFF);
-			exit(-1);
-		}
-	} else if (waitpid(pid, &rval, 0) == pid) {
-		if (WIFEXITED(rval)) {
-			if (WEXITSTATUS(rval) == 0) {
-				DPRINTF("volrmmount: Success\n");
-				return (1);
-			}
-		}
-	}
-	return (-1);
-}
-
 int
 find_device(int defer, char *tmpstr)
 {
@@ -1160,7 +1010,7 @@
 		total_devices_found++;
 
 		if ((!defer) && !found) {
-			char *sn, *tmpbuf;
+			char *sn, *tmpbuf = NULL;
 			/*
 			 * dev_name is an optional command line input.
 			 */
