aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorTom Lane <tgl@sss.pgh.pa.us>2004-07-19 21:02:17 +0000
committerTom Lane <tgl@sss.pgh.pa.us>2004-07-19 21:02:17 +0000
commit465edca3ecfb8f1750adda9731820286c109973b (patch)
tree13500d87e2e6ae88485357e77f12d308d9cc3a17 /src
parent8459b2d47243807e4ee651d6cb35af12976c777e (diff)
downloadpostgresql-465edca3ecfb8f1750adda9731820286c109973b.tar.gz
postgresql-465edca3ecfb8f1750adda9731820286c109973b.zip
Fix incorrect tracking of session authorization in the presence of ACLs
that contain rights granted by non-owners. Per bug report from Nishad Prakash.
Diffstat (limited to 'src')
-rw-r--r--src/bin/pg_dump/pg_backup_archiver.c13
1 files changed, 12 insertions, 1 deletions
diff --git a/src/bin/pg_dump/pg_backup_archiver.c b/src/bin/pg_dump/pg_backup_archiver.c
index 19b08048884..5515f98db39 100644
--- a/src/bin/pg_dump/pg_backup_archiver.c
+++ b/src/bin/pg_dump/pg_backup_archiver.c
@@ -15,7 +15,7 @@
*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/bin/pg_dump/pg_backup_archiver.c,v 1.88 2004/07/13 03:00:17 momjian Exp $
+ * $PostgreSQL: pgsql/src/bin/pg_dump/pg_backup_archiver.c,v 1.89 2004/07/19 21:02:17 tgl Exp $
*
*-------------------------------------------------------------------------
*/
@@ -2391,6 +2391,17 @@ _printTocEntry(ArchiveHandle *AH, TocEntry *te, RestoreOptions *ropt, bool isDat
_printTocHeader(AH, te, ropt, isData);
}
+ /*
+ * If it's an ACL entry, it might contain SET SESSION AUTHORIZATION
+ * commands, so we can no longer assume we know the current auth setting.
+ */
+ if (strncmp(te->desc, "ACL", 3) == 0)
+ {
+ if (AH->currUser)
+ free(AH->currUser);
+ AH->currUser = NULL;
+ }
+
return 1;
}