]> granicus.if.org Git - postgresql/commit
Fix cascading privilege revoke to notice when privileges are still held.
authorTom Lane <tgl@sss.pgh.pa.us>
Thu, 23 Aug 2012 21:25:23 +0000 (17:25 -0400)
committerTom Lane <tgl@sss.pgh.pa.us>
Thu, 23 Aug 2012 21:25:23 +0000 (17:25 -0400)
commitff122d3268d55ace4a2ebf5f4ee1528e8a80fa98
tree1703df4a04732f853b5d972f8317dc5d3c742f45
parent874d97c2a8211cf7daaa70ee531037e69a18f4ba
Fix cascading privilege revoke to notice when privileges are still held.

If we revoke a grant option from some role X, but X still holds the option
via another grant, we should not recursively revoke the privilege from
role(s) Y that X had granted it to.  This was supposedly fixed as one
aspect of commit 4b2dafcc0b1a579ef5daaa2728223006d1ff98e9, but I must not
have tested it, because in fact that code never worked: it forgot to shift
the grant-option bits back over when masking the bits being revoked.

Per bug #6728 from Daniel German.  Back-patch to all active branches,
since this has been wrong since 8.0.
src/backend/utils/adt/acl.c
src/test/regress/expected/privileges.out
src/test/regress/sql/privileges.sql