2f9943f 616618 - 389 v1.2.5 accepts 2 identical entries with different DN formats

Authored and Committed by nhosoi 13 years ago
    616618 - 389 v1.2.5 accepts 2 identical entries with different DN formats
    
    https://bugzilla.redhat.com/show_bug.cgi?id=616618
    
    Change Description:
    . renamed 91upgradednformat.pl to 80upgradednformat.pl to run
      upgradednformat before 90subtreerename.pl.
    . ported following patches applied to Directory_Server_8_2_Branch
      to master and 389-ds-base-1.2.6.
      612771 - RHDS 8.1/389 v1.2.5 accepts 2 identical entries with
               different DN formats
      * commit 50bb2ee6676e10cdda704982dfa831efa4011037
        Fix Description:
        This patch fixes the upgradednformat utility to eliminate the
        duplicated DNs found in the upgrading period.  Assuming DN:
        attr0=value0,attr1=value1,...,attrn=valuen exists in the DB
        and another identical DN is found, the second DN is renamed to
          nsuniqueid=<uuid>+attr0=value0,attr1=value1,...,attrn=valuen
        , where the <uuid> is the unique id assigned to the entry when
        the entry is added to the server.  The modification is logged
        in the error log.
    
        In addition, there was a bug to handle multi-valued RDNs in
        slapi_dn_normalize_ext.  In case multi-valued RDN appears with
        DN value (e.g., nsuniqueid=<uuid>+cn=uid\=<uid>\,o\=<org>,dc=<dc>),
        it was not normalized properly.  Introduced second rdn_av_stack
        (subinitial_rdn_av_stack) for the nested DN value.
    
        See also:
        http://directory.fedoraproject.org/wiki/Upgrade_to_New_DN_Format#Another_Upgrade_Scenario
    
      * commit ebaa18adaf201f75c709e078abd8e32605eddb81
        Fix Description:
        1) In the previous commit 50bb2ee6676e10cdda704982dfa831efa4011037,
        there were 3 places to miss replacing rdn_av_count with subrdn_av_count.
        2) A variable subtypestart is used to keep the head of nested
        multivalued RDNs.  For instance,
           seeAlso=cn\=<CN>\+l\=<L>\,o\=<O>,dc=examle,dc=com
                   ^   or    ^   or  ^
        There was a bug to set the first position ("cn" in the above example).
    
        In addition, fixed a warning assigning "const char *" to "char *" in
        import_foreman (import-threads.c).
    
      * commit 472a2c0f2f21205390ba87c31c498b4419a932ba
        Fix Description:
        When newly creating an ancestorid index file, instead of
        opening the index file with DB_TRUNCATE option, delete
        the file then create it.
    
      616135 - Upgrade failure on Solaris :
               tar: db/NetscapeRoot/{DBVERSION,*.db4}:
               No such file or directory
    
      * commit e6723421e6dc69408edb2a396eb22da361cff206
        Fix Description:
        .../'{'DBVERSION,*.db4'}' is not a shell syntax. Process DBVERSION
        and *.db4 individually.
    
    Cherry-picked 700d7c1a199db4a690740636b8bd3e612304ce1e and
                  0b6ddc9b06845bdf385e749f2c5a99497df20d98 from
    389-ds-base-1.2.6 branch.
    
        
file modified
+1 -1
file modified
+25 -7
file modified
+5 -6399
file modified
+4 -0
file modified
+15770 -19041
ldap/admin/src/scripts/80upgradednformat.pl ldap/admin/src/scripts/91upgradednformat.pl
file renamed
+30 -11
file modified
+75 -58
file modified
+53 -31
file modified
+1 -0