A bug in the acl handling code can cause core dumps after repeated GRANT queries.
Thanks to Thomas Szybist (szybist@boxhill.com) for finding this bug and Robert Patrick (rp2y+@cs.cmu.edu) for fixing it.
Apply this patch.
===================================================================
*** 1.2 1995/10/18 03:13:37
--- RELEASE.patchlevel 1995/10/31 07:22:52
***************
*** 3,9 ****
## This file is used to maintain sequencing of patches
version: 1.0
! patch level: 11
! patch date: 1995/10/10 17:59:03
--- 3,9 ----
## This file is used to maintain sequencing of patches
version: 1.0
! patch level: 12
! patch date: Mon Oct 30 23:22:44 PST 1995
===================================================================
*** 1.7 1995/09/14 18:32:29
--- src/backend/utils/adt/acl.c 1995/10/31 06:54:57
***************
*** 374,381 ****
new_aip = ACL_DAT(new_acl);
src = dst;
} else {
! num = ACL_NUM(old_acl) + 1;
! new_acl = makeacl(num);
new_aip = ACL_DAT(new_acl);
if (dst == 0) { /* start */
elog(WARN, "aclinsert3: insertion before world ACL??");
--- 374,380 ----
new_aip = ACL_DAT(new_acl);
src = dst;
} else {
! new_acl = makeacl(num + 1);
new_aip = ACL_DAT(new_acl);
if (dst == 0) { /* start */
elog(WARN, "aclinsert3: insertion before world ACL??");
***************
*** 393,398 ****
--- 392,398 ----
}
new_aip[dst].ai_id = mod_aip->ai_id;
new_aip[dst].ai_idtype = mod_aip->ai_idtype;
+ num++; /* set num to the size of new_acl */
src = 0; /* world entry */
}
switch (modechg) {