Date:

Mon Oct 30 23:30:45 PST 1995

Description

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.

Fix

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) {