From 9216c8999affbb2df78173665a215f4b3198de48 Mon Sep 17 00:00:00 2001 From: Tom Lane Date: Tue, 2 Aug 2005 15:14:47 +0000 Subject: [PATCH] rmtree() reported the wrong pathname if final rmdir failed. --- src/port/dirmod.c | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/src/port/dirmod.c b/src/port/dirmod.c index a31cfca081..c2863e205f 100644 --- a/src/port/dirmod.c +++ b/src/port/dirmod.c @@ -10,7 +10,7 @@ * Win32 (NT, Win2k, XP). replace() doesn't work on Win95/98/Me. * * IDENTIFICATION - * $PostgreSQL: pgsql/src/port/dirmod.c,v 1.37 2005/03/24 02:11:20 tgl Exp $ + * $PostgreSQL: pgsql/src/port/dirmod.c,v 1.38 2005/08/02 15:14:47 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -281,10 +281,10 @@ pgsymlink(const char *oldpath, const char *newpath) #ifndef FRONTEND ereport(ERROR, (errcode_for_file_access(), - errmsg("Error setting junction for %s: %s", + errmsg("could not set junction for \"%s\": %s", nativeTarget, msg))); #else - fprintf(stderr, _("Error setting junction for %s: %s\n"), + fprintf(stderr, _("could not set junction for \"%s\": %s\n"), nativeTarget, msg); #endif LocalFree(msg); @@ -408,7 +408,8 @@ fnames_cleanup(char **filenames) bool rmtree(char *path, bool rmtopdir) { - char filepath[MAXPGPATH]; + char pathbuf[MAXPGPATH]; + char *filepath; char **filenames; char **filename; struct stat statbuf; @@ -423,6 +424,7 @@ rmtree(char *path, bool rmtopdir) return false; /* now we have the names we can start removing things */ + filepath = pathbuf; for (filename = filenames; *filename; filename++) { @@ -450,7 +452,8 @@ rmtree(char *path, bool rmtopdir) if (rmtopdir) { - if (rmdir(path) != 0) + filepath = path; + if (rmdir(filepath) != 0) goto report_and_fail; } -- 2.11.0