ITS#7786 Try to synthesize missing attribute types

This commit is contained in:
Ondřej Kuzník 2021-03-30 08:43:48 +01:00 committed by Quanah Gibson-Mount
parent e8c03ba510
commit 80cfd8117b

View File

@ -309,6 +309,16 @@ slapmodify( int argc, char **argv )
int normalize = 0;
local_rc = slap_str2ad( mod->mod_type, &mods.sm_desc, &text );
/*
* Usually this would be a bad idea (way too dangerous, risks
* corrupting the DB), but ITS#7786 documents this as a last
* resort to fix cn=config and missing attributes are one of
* the possible issues we might encounter.
*/
if ( local_rc == LDAP_UNDEFINED_TYPE &&
(slapMode & SLAP_TOOL_NO_SCHEMA_CHECK) ) {
local_rc = slap_str2undef_ad( mod->mod_type, &mods.sm_desc, &text, 0 );
}
if ( local_rc != LDAP_SUCCESS ) {
fprintf( stderr, "%s: slap_str2ad(\"%s\") failed for entry \"%s\" (%d: %s, lineno=%lu)\n",
progname, mod->mod_type, lr.lr_dn.bv_val, local_rc, text, lineno );