Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 6 Jan 2009 19:00:12 +0000 (UTC)
From:      Florent Thoumie <flz@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r186835 - head/usr.sbin/pkg_install/lib
Message-ID:  <200901061900.n06J0CGZ039198@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: flz
Date: Tue Jan  6 19:00:12 2009
New Revision: 186835
URL: http://svn.freebsd.org/changeset/base/186835

Log:
  - Backout latest changes (follow symlinks: r186496, r186518).
  - Bump PKG_INSTALL_VER to 20090106.

Modified:
  head/usr.sbin/pkg_install/lib/lib.h
  head/usr.sbin/pkg_install/lib/plist.c

Modified: head/usr.sbin/pkg_install/lib/lib.h
==============================================================================
--- head/usr.sbin/pkg_install/lib/lib.h	Tue Jan  6 18:10:17 2009	(r186834)
+++ head/usr.sbin/pkg_install/lib/lib.h	Tue Jan  6 19:00:12 2009	(r186835)
@@ -105,7 +105,7 @@
  * Version of the package tools - increase only when some
  * functionality used by bsd.port.mk is changed, added or removed
  */
-#define PKG_INSTALL_VERSION	20081227
+#define PKG_INSTALL_VERSION	20090106
 
 #define PKG_WRAPCONF_FNAME	"/var/db/pkg_install.conf"
 #define main(argc, argv)	real_main(argc, argv)

Modified: head/usr.sbin/pkg_install/lib/plist.c
==============================================================================
--- head/usr.sbin/pkg_install/lib/plist.c	Tue Jan  6 18:10:17 2009	(r186834)
+++ head/usr.sbin/pkg_install/lib/plist.c	Tue Jan  6 19:00:12 2009	(r186835)
@@ -544,82 +544,45 @@ delete_package(Boolean ign_err, Boolean 
 int
 delete_hierarchy(const char *dir, Boolean ign_err, Boolean nukedirs)
 {
-    char *cp1, *cp2, realdir[FILENAME_MAX];
+    char *cp1, *cp2;
 
-    if (realdir == NULL) {
-	warnx("Couldn't allocate enough memory\n");
-	return (ign_err ? SUCCESS : FAIL);
-    }
-
-    if (issymlink(dir) && readlink(dir, realdir, FILENAME_MAX-1) == -1)
-	return (ign_err ? SUCCESS : FAIL);
-
-    strlcpy(realdir, dir, FILENAME_MAX-1);
-
-    cp1 = cp2 = strdup(realdir);
-    if (cp1 == NULL) {
-	warnx("Couldn't allocate enough memory\n");
-	return (ign_err ? SUCCESS : FAIL);
-    }
-
-    if (!fexists(realdir)) {
+    cp1 = cp2 = strdup(dir);
+    if (!fexists(dir)) {
 	if (!ign_err)
 	    warnx("%s '%s' doesn't exist",
-		isdir(realdir) ? "directory" : "file", realdir);
-	free(cp1);
-	return (ign_err ? SUCCESS : FAIL);
+		isdir(dir) ? "directory" : "file", dir);
+	return !ign_err;
     }
     else if (nukedirs) {
-	if (vsystem("%s -r%s %s", REMOVE_CMD, (ign_err ? "f" : ""), realdir)) {
-	    free(cp1);
-	    return (ign_err ? SUCCESS : FAIL);
-	}
+	if (vsystem("%s -r%s %s", REMOVE_CMD, (ign_err ? "f" : ""), dir))
+	    return 1;
     }
-    else if (isdir(realdir)) {
-	if (RMDIR(realdir)) {
-	    free(cp1);
-	    return (ign_err ? SUCCESS : FAIL);
-	}
+    else if (isdir(dir) && !issymlink(dir)) {
+	if (RMDIR(dir) && !ign_err)
+	    return 1;
     }
     else {
-	if (REMOVE(realdir, ign_err)) {
-	    free(cp1);
-	    return (ign_err ? SUCCESS : FAIL);
-	}
+	if (REMOVE(dir, ign_err))
+	    return 1;
     }
 
-    if (!nukedirs) {
-	free(cp1);
-	return (SUCCESS);
-    }
+    if (!nukedirs)
+	return 0;
     while (cp2) {
 	if ((cp2 = strrchr(cp1, '/')) != NULL)
 	    *cp2 = '\0';
-	if (!isemptydir(realdir)) {
-	    free(cp1);
-	    return (SUCCESS);
-	}
-	if (RMDIR(realdir) && !ign_err) {
-	    if (!fexists(realdir)) {
-		warnx("directory '%s' doesn't exist", realdir);
-		free(cp1);
-		return (SUCCESS);
-	    } else {
-		free(cp1);
-		return (FAIL);
-	    }
+	if (!isemptydir(dir))
+	    return 0;
+	if (RMDIR(dir) && !ign_err) {
+	    if (!fexists(dir))
+		warnx("directory '%s' doesn't exist", dir);
+	    else
+		return 1;
 	}
 	/* back up the pathname one component */
 	if (cp2) {
-	    free(cp1);
-	    cp1 = strdup(realdir);
-	    if (cp1 == NULL) {
-		warnx("Couldn't allocate enough memory\n");
-		return (ign_err ? SUCCESS : FAIL);
-	    }
+	    cp1 = strdup(dir);
 	}
     }
-    free(cp1);
-    return (SUCCESS);
+    return 0;
 }
-



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200901061900.n06J0CGZ039198>