From ab50cb14a44657aceed82bf691f3d90874370662 Mon Sep 17 00:00:00 2001 From: Tom Lane Date: Mon, 19 Jul 2004 21:02:42 +0000 Subject: [PATCH] Fix incorrect tracking of session authorization in the presence of ACLs that contain rights granted by non-owners. Per bug report from Nishad Prakash. --- src/bin/pg_dump/pg_backup_archiver.c | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/src/bin/pg_dump/pg_backup_archiver.c b/src/bin/pg_dump/pg_backup_archiver.c index 32615d9f71..41b573cea7 100644 --- a/src/bin/pg_dump/pg_backup_archiver.c +++ b/src/bin/pg_dump/pg_backup_archiver.c @@ -15,7 +15,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/bin/pg_dump/pg_backup_archiver.c,v 1.79.2.2 2004/02/24 03:35:43 tgl Exp $ + * $Header: /cvsroot/pgsql/src/bin/pg_dump/pg_backup_archiver.c,v 1.79.2.3 2004/07/19 21:02:42 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -2262,6 +2262,17 @@ _printTocEntry(ArchiveHandle *AH, TocEntry *te, RestoreOptions *ropt, bool isDat ahprintf(AH, "%s\n\n", te->defn); } + /* + * 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; } -- 2.50.1