|
8 | 8 | * |
9 | 9 | * |
10 | 10 | * IDENTIFICATION |
11 | | - * $Header: /cvsroot/pgsql/src/backend/utils/adt/acl.c,v 1.55 2000/12/03 20:45:35 tgl Exp $ |
| 11 | + * $Header: /cvsroot/pgsql/src/backend/utils/adt/acl.c,v 1.56 2001/01/14 19:23:27 tgl Exp $ |
12 | 12 | * |
13 | 13 | *------------------------------------------------------------------------- |
14 | 14 | */ |
@@ -333,8 +333,10 @@ aclitemout(PG_FUNCTION_ARGS) |
333 | 333 | * aclitemeq |
334 | 334 | * aclitemgt |
335 | 335 | *AclItem equality and greater-than comparison routines. |
336 | | - *Two AclItems are equal iff they have the |
337 | | - *same identifier (and identifier type). |
| 336 | + *Two AclItems are considered equal iff they have the |
| 337 | + *same identifier (and identifier type); the mode is ignored. |
| 338 | + *Note that these routines are really only useful for sorting |
| 339 | + *AclItems into identifier order. |
338 | 340 | * |
339 | 341 | * RETURNS: |
340 | 342 | *a boolean value indicating = or > |
@@ -581,8 +583,12 @@ aclcontains(PG_FUNCTION_ARGS) |
581 | 583 | num=ACL_NUM(acl); |
582 | 584 | aidat=ACL_DAT(acl); |
583 | 585 | for (i=0;i<num;++i) |
584 | | -if (aclitemeq(aip,aidat+i)) |
| 586 | +{ |
| 587 | +/* Note that aclitemeq only considers id, not mode */ |
| 588 | +if (aclitemeq(aip,aidat+i)&& |
| 589 | +aip->ai_mode==aidat[i].ai_mode) |
585 | 590 | PG_RETURN_BOOL(true); |
| 591 | +} |
586 | 592 | PG_RETURN_BOOL(false); |
587 | 593 | } |
588 | 594 |
|
|