From 9848fa4c42ec75cf150d78b9bacdbc1fa6f7c09b Mon Sep 17 00:00:00 2001 From: Kurt Zeilenga Date: Sat, 19 Jan 2002 08:23:14 +0000 Subject: [PATCH] Add improved slurpd friendly code from HEAD --- CHANGES | 4 ++++ build/version | 2 +- servers/slapd/add.c | 10 +++++++++- 3 files changed, 14 insertions(+), 2 deletions(-) diff --git a/CHANGES b/CHANGES index b42f9bec92..5cbd85d75a 100644 --- a/CHANGES +++ b/CHANGES @@ -1,5 +1,9 @@ OpenLDAP 2.0 Change Log +OpenLDAP 2.0.22 Engineering + Updated slapd slurpd friendly code + Fixed slapd passwd modify referral bug + OpenLDAP 2.0.21 Release Fix slapd empty string indexing/filtering handling (ITS#1507) Changed slapd ACL selfwrite replace logic (ITS#1530) diff --git a/build/version b/build/version index cbf097f727..5f52e672d8 100644 --- a/build/version +++ b/build/version @@ -1 +1 @@ -2.0.21-Release +2.0.22-Engineering diff --git a/servers/slapd/add.c b/servers/slapd/add.c index 3472d68b63..b94d025a5c 100644 --- a/servers/slapd/add.c +++ b/servers/slapd/add.c @@ -28,6 +28,7 @@ static int slap_mods2entry( Modifications *mods, Entry **e, + int repl_user, const char **text ); int @@ -233,7 +234,7 @@ do_add( Connection *conn, Operation *op ) } } - rc = slap_mods2entry( mods, &e, &text ); + rc = slap_mods2entry( mods, &e, repl_user, &text ); if( rc != LDAP_SUCCESS ) { send_ldap_result( conn, op, rc, NULL, text, NULL, NULL ); @@ -280,6 +281,7 @@ done: static int slap_mods2entry( Modifications *mods, Entry **e, + int repl_user, const char **text ) { Attribute **tail = &(*e)->e_attrs; @@ -298,6 +300,11 @@ static int slap_mods2entry( #ifdef SLURPD_FRIENDLY ber_len_t i,j; + if( !repl_user ) { + *text = "attribute provided more than once"; + return LDAP_TYPE_OR_VALUE_EXISTS; + } + for( i=0; attr->a_vals[i]; i++ ) { /* count them */ } @@ -310,6 +317,7 @@ static int slap_mods2entry( sizeof( struct berval * ) * (i+j) ); /* should check for duplicates */ + AC_MEMCPY( &attr->a_vals[i], mods->sml_bvalues, sizeof( struct berval * ) * j ); -- 2.47.2