[Date Prev][Date Next] [Chronological] [Thread] [Top]

Re: (ITS#7098) OpenLDAP crashes when changing OID value in schema definition in cn=config



nick@eurobjects.com wrote:
> Full_Name: Nikolaos Milas
> Version: 2.4.26 (LTB RPM)
> OS: CentOS 5.7
> URL: ftp://ftp.openldap.org/incoming/
> Submission from: (NULL) (195.251.204.222)
>
>
> We use the following schema (among others):

Thanks for the report, this is now fixed in git master.
>
> DN: cn={5}postfix,cn=schema,cn=config
> objectClass: olcSchemaConfig
> cn: {5}postfix
> olcAttributeTypes: {0}( 1.3.6.1.4.1.25260.1.000 NAME 'mailacceptinggeneralid'
> DESC 'Defines an address that we accept mail for' EQUALITY caseIgnoreMatch
> SUBSTR caseIgnoreSubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 )
> olcAttributeTypes: {1}( 1.3.6.1.4.1.25260.1.001 NAME 'maildrop' DESC 'Defines
> the address mail goes to' EQUALITY caseIgnoreMatch SUBSTR
> caseIgnoreSubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 )
> olcAttributeTypes: {2}( 1.3.6.1.4.1.25260.1.002 NAME 'mailacceptinguser' DESC
> 'Defines if this user accepts mail' EQUALITY caseIgnoreMatch SUBSTR
> caseIgnoreSubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 )
> olcAttributeTypes: {3}( 1.3.6.1.4.1.25260.1.003 NAME 'aliasInactive' DESC 'A
> flag, for marking the alias as not in use' EQUALITY booleanMatch SYNTAX
> 1.3.6.1.4.1.1466.115.121.1.7 SINGLE-VALUE )
> olcObjectClasses: {0}( 1.3.6.1.4.1.25260.1.1.100 NAME 'virtualaccount' DESC
> 'Holds mail info for a virtual account' STRUCTURAL MUST ( owner $
> mailacceptinggeneralid $ maildrop $ cn ) MAY ( description $ aliasInactive ) )
> olcObjectClasses: {1}( 1.3.6.1.4.1.25260.1.1.101 NAME 'maillist' DESC 'Virtual
> account for holding mailing list info' STRUCTURAL MUST ( mailacceptinggeneralid
> $ maildrop $ cn ) MAY ( owner $ description $ aliasInactive ) )
> olcObjectClasses: {2}( 1.3.6.1.4.1.25260.1.1.102 NAME 'mailAccount' DESC 'Email
> account details' AUXILIARY MUST ( mailacceptinguser $ maildrop $ cn ) MAY (
> mailacceptinggeneralid $ aliasInactive ) )
> olcObjectClasses: {3}( 1.3.6.1.4.1.25260.1.1.105 NAME 'virtualbox' DESC 'Mailbox
> for system use' STRUCTURAL MUST ( owner $ mail $ uid $ cn ) MAY description )
>
> We run:
> # /usr/local/openldap/bin/ldapmodify -h localhost -x -v -W -D
> "cn=admin,cn=config" -f /root/work/schemachange1
>
> where /root/work/schemachange1:
> dn: cn={5}postfix,cn=schema,cn=config
> changetype: modify
> delete: olcAttributeTypes
> olcAttributeTypes: {0}( 1.3.6.1.4.1.25260.1.000 NAME 'mailacceptinggeneralid'
> DESC 'Defines an address that we accept mail for' EQUALITY caseIgnoreMatch
> SUBSTR caseIgnoreSubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 )
> -
> add: olcAttributeTypes
> olcAttributeTypes: {0}( 1.3.6.1.4.1.25260.1.0 NAME 'mailacceptinggeneralid' DESC
> 'Defines an address that we accept mail for' EQUALITY caseIgnoreMatch SUBSTR
> caseIgnoreSubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 )
>
> This is successful:
> [root@ldap work]# /usr/local/openldap/bin/ldapmodify -h localhost -x -v -W -D
> "cn=admin,cn=config" -f /root/work/schemachange1
> ldap_initialize( ldap://localhost )
> Enter LDAP Password:
> delete olcAttributeTypes:
>          {0}( 1.3.6.1.4.1.25260.1.000 NAME 'mailacceptinggeneralid' DESC 'Defines
> an address that we accept mail for' EQUALITY caseIgnoreMatch SUBSTR
> caseIgnoreSubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 )
> add olcAttributeTypes:
>          {0}( 1.3.6.1.4.1.25260.1.0 NAME 'mailacceptinggeneralid' DESC 'Defines
> an address that we accept mail for' EQUALITY caseIgnoreMatch SUBSTR
> caseIgnoreSubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 )
> modifying entry "cn={5}postfix,cn=schema,cn=config"
> modify complete
>
> However, then we try to run:
> # /usr/local/openldap/bin/ldapmodify -h localhost -x -v -W -D
> "cn=admin,cn=config" -f /root/work/schemachange2
>
> where /root/work/schemachange2:
> dn: cn={5}postfix,cn=schema,cn=config
> changetype: modify
> delete: olcAttributeTypes
> olcAttributeTypes: {1}( 1.3.6.1.4.1.25260.1.001 NAME 'maildrop' DESC 'Defines
> the address mail goes to' EQUALITY caseIgnoreMatch SUBSTR
> caseIgnoreSubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 )
> -
> add: olcAttributeTypes
> olcAttributeTypes: {1}( 1.3.6.1.4.1.25260.1.1 NAME 'maildrop' DESC 'Defines the
> address mail goes to' EQUALITY caseIgnoreMatch SUBSTR caseIgnoreSubstringsMatch
> SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 )
>
> and this causes an OpenLDAP crash:
> [root@ldap work]# /usr/local/openldap/bin/ldapmodify -h localhost -x -v -W -D
> "cn=admin,cn=config" -f /root/work/schemachange2
> ldap_initialize( ldap://localhost )
> Enter LDAP Password:
> delete olcAttributeTypes:
>          {1}( 1.3.6.1.4.1.25260.1.001 NAME 'maildrop' DESC 'Defines the address
> mail goes to' EQUALITY caseIgnoreMatch SUBSTR caseIgnoreSubstringsMatch SYNTAX
> 1.3.6.1.4.1.1466.115.121.1.15 )
> add olcAttributeTypes:
>          {1}( 1.3.6.1.4.1.25260.1.1 NAME 'maildrop' DESC 'Defines the address
> mail goes to' EQUALITY caseIgnoreMatch SUBSTR caseIgnoreSubstringsMatch SYNTAX
> 1.3.6.1.4.1.1466.115.121.1.15 )
> modifying entry "cn={5}postfix,cn=schema,cn=config"
>
> This hangs, and we interrupt with Ctrl-C.
>
> gdb reports:


-- 
   -- Howard Chu
   CTO, Symas Corp.           http://www.symas.com
   Director, Highland Sun     http://highlandsun.com/hyc/
   Chief Architect, OpenLDAP  http://www.openldap.org/project/