From 7d30e5b33fe125c62b8ef06ca43b756268ef063c Mon Sep 17 00:00:00 2001 From: Grigory Smolkin Date: Mon, 29 Apr 2019 22:45:44 +0300 Subject: [PATCH] minor bugfix: ensure that tablespace directories are canonicalized --- src/backup.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/backup.c b/src/backup.c index f62dd064..8160db27 100644 --- a/src/backup.c +++ b/src/backup.c @@ -3461,8 +3461,8 @@ check_external_for_tablespaces(parray *external_list) int i = 0; int j = 0; char *tablespace_path = NULL; - char *query = "SELECT pg_catalog.pg_tablespace_location(oid)\n" - "FROM pg_tablespace\n" + char *query = "SELECT pg_catalog.pg_tablespace_location(oid) " + "FROM pg_catalog.pg_tablespace " "WHERE pg_catalog.pg_tablespace_location(oid) <> '';"; conn = backup_conn; @@ -3476,9 +3476,13 @@ check_external_for_tablespaces(parray *external_list) { tablespace_path = PQgetvalue(res, i, 0); Assert (strlen(tablespace_path) > 0); + + canonicalize_path(tablespace_path); + for (j = 0; j < parray_num(external_list); j++) { char *external_path = parray_get(external_list, j); + if (path_is_prefix_of_path(external_path, tablespace_path)) elog(ERROR, "External directory path (-E option) \"%s\" " "contains tablespace \"%s\"",