~ubuntu-branches/ubuntu/maverick/openldap/maverick-proposed

« back to all changes in this revision

Viewing changes to servers/slapd/aci.c

  • Committer: Bazaar Package Importer
  • Author(s): Mathias Gug, Steve Langasek, Mathias Gug
  • Date: 2009-02-18 18:44:00 UTC
  • mfrom: (1.1.2 upstream) (0.1.2 lenny)
  • Revision ID: james.westby@ubuntu.com-20090218184400-zw4mjse9eywt5566
Tags: 2.4.14-0ubuntu1
[ Steve Langasek ]
* New upstream version
  - Fixes a bug with the pcache overlay not returning cached entries
    (closes: #497697)
  - Update evolution-ntlm patch to apply to current Makefiles.
  - (tentatively) drop gnutls-ciphers, since this bug was reported to be
    fixed upstream in 2.4.8.  The fix applied in 2.4.8 didn't match the
    patch from the bug report, so this should be watched for regressions.
* Build against db4.7 instead of db4.2 at last!  Closes: #421946.
* Build with --disable-ndb, to avoid a misbuild when libmysqlclient is
  installed in the build environment.
* New patch, no-crlcheck-for-gnutls, to fix a build failure when using
  --with-tls=gnutls.

[ Mathias Gug ]
* Merge from debian unstable, remaining changes:
  - debian/apparmor-profile: add AppArmor profile
  - debian/slapd.postinst: Reload AA profile on configuration
  - updated debian/slapd.README.Debian for note on AppArmor
  - debian/control: Recommends apparmor >= 2.1+1075-0ubuntu6
  - debian/control: Conflicts with apparmor-profiles << 2.1+1075-0ubuntu4
    to make sure that if earlier version of apparmour-profiles gets
    installed it won't overwrite our profile.
  - Modify Maintainer value to match the DebianMaintainerField
    speficication.
  - follow ApparmorProfileMigration and force apparmor compalin mode on 
    some upgrades (LP: #203529)
  - debian/slapd.dirs: add etc/apparmor.d/force-complain
  - debian/slapd.preinst: create symlink for force-complain on pre-feisty
    upgrades, upgrades where apparmor-profiles profile is unchanged (ie
    non-enforcing) and upgrades where apparmor profile does not exist.
  - debian/slapd.postrm: remove symlink in force-complain/ on purge
  - debian/patches/fix-ucred-libc due to changes how newer glibc handle
    the ucred struct now.
  - debian/control:
    - Build-depend on libltdl7-dev rather then libltdl3-dev.
  - debian/patches/autogen.sh:
    - Call libtoolize with the --install option to install config.{guess,sub}
      files.
  - Don't use local statement in config script as it fails if /bin/sh
    points to bash (LP: #286063).
  - Disable the testsuite on hppa. Allows building of packages on this
    architecture again, once this package is in the archive.
    LP: #288908.
  - debian/slapd.postinst, debian/slapd.script-common: set correct ownership
    and permissions on /var/lib/ldap, /etc/ldap/slapd.d (group readable) and
    /var/run/slapd (world readable). (LP: #257667).
  - debian/patches/nssov-build, debian/rules: 
    Build and package the nss overlay.
    debian/schema/misc.ldif: add ldif file for the misc schema, which defines
    rfc822MailMember (required by the nss overlay).
  - debian/{control,rules}: enable PIE hardening
  - Use cn=config as the default configuration backend instead of 
    slapd.conf. Migrate slapd.conf  file to /etc/ldap/slapd.d/ on upgrade
    asking the end user to enter a new password to control the access to the
    cn=config tree.
* debian/patches/corrupt-contextCSN: The contextCSN can get corrupted at
  times. (ITS: #5947)

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
1
/* aci.c - routines to parse and check acl's */
2
 
/* $OpenLDAP: pkg/ldap/servers/slapd/aci.c,v 1.14.2.6 2008/02/11 23:26:43 kurt Exp $ */
 
2
/* $OpenLDAP: pkg/ldap/servers/slapd/aci.c,v 1.14.2.11 2009/01/22 00:00:59 kurt Exp $ */
3
3
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
4
4
 *
5
 
 * Copyright 1998-2008 The OpenLDAP Foundation.
 
5
 * Copyright 1998-2009 The OpenLDAP Foundation.
6
6
 * All rights reserved.
7
7
 *
8
8
 * Redistribution and use in source and binary forms, with or without
345
345
                        continue;
346
346
                }
347
347
 
348
 
                found = 1;
349
348
                *mask |= aci_list_get_attr_rights( &perm, attr, val );
350
349
                *mask |= aci_list_get_attr_rights( &perm, &aci_bv[ ACI_BV_BR_ALL ], NULL );
 
350
 
 
351
                if ( *mask != ACL_PRIV_NONE ) { 
 
352
                        found = 1;
 
353
                }
351
354
        }
352
355
 
353
356
        return found;
397
400
        if ( grp_oc != NULL && grp_ad != NULL ) {
398
401
                char            buf[ ACI_BUF_SIZE ];
399
402
                struct berval   bv, ndn;
 
403
                AclRegexMatches amatches = { 0 };
 
404
 
 
405
                amatches.dn_count = nmatch;
 
406
                AC_MEMCPY( amatches.dn_data, matches, sizeof( amatches.dn_data ) );
400
407
 
401
408
                bv.bv_len = sizeof( buf ) - 1;
402
409
                bv.bv_val = (char *)&buf;
403
410
                if ( acl_string_expand( &bv, &subjdn,
404
 
                                e->e_ndn, nmatch, matches ) )
 
411
                                &e->e_nname, NULL, &amatches ) )
405
412
                {
406
413
                        rc = LDAP_OTHER;
407
414
                        goto done;
439
446
                                opts,
440
447
                                sdn;
441
448
        int                     rc;
442
 
                
 
449
 
 
450
        ACL_INIT( *grant );
 
451
        ACL_INIT( *deny );
443
452
 
444
453
        assert( !BER_BVISNULL( &desc->ad_cname ) );
445
454
 
1038
1047
OpenLDAPaciValidatePerms(
1039
1048
        struct berval *perms ) 
1040
1049
{
1041
 
        int             i;
 
1050
        ber_len_t       i;
1042
1051
 
1043
1052
        for ( i = 0; i < perms->bv_len; ) {
1044
1053
                switch ( perms->bv_val[ i ] ) {
1738
1747
                }
1739
1748
 
1740
1749
                nsubject = ad->ad_cname;
 
1750
 
 
1751
        } else if ( OpenLDAPacitypes[ idx ] == &aci_bv[ ACI_BV_SET ]
 
1752
                || OpenLDAPacitypes[ idx ] == &aci_bv[ ACI_BV_SET_REF ] )
 
1753
        {
 
1754
                /* NOTE: dunno how to normalize it... */
 
1755
                nsubject = subject;
1741
1756
        }
1742
1757
 
1743
1758