[email protected] wrote:
> AC_MEMCPY is generally memove(3).  It would only be memcpy(3) if both =
> memmove(3) or bcopy(3) were not available.  So at most your patch will =
> cause link errors.

Closing this ITS. The patch is obviously invalid.
>
> =E2=80=94 Kurt
>
>> On Jan 3, 2015, at 11:21 AM, [email protected] wrote:
>> =20
>> This is a multi-part message in MIME format.
>> --------------090408030902080204080503
>> Content-Type: text/plain; charset=3Dwindows-1251; format=3Dflowed
>> Content-Transfer-Encoding: 7bit
>> =20
>> Please review and merge.
>> =20
>> Leonid.
>> =20
>> =20
>> --------------090408030902080204080503
>> Content-Type: text/x-patch;
>> name=3D"its8015.patch"
>> Content-Transfer-Encoding: 7bit
>> Content-Disposition: attachment;
>> filename=3D"its8015.patch"
>> =20
>> commit 8d55a7c88c6655879ffc677e5a9873f29bb7a802
>> Author: Leo Yuriev <[email protected]>
>> Date:   2015-01-01 16:00:58 +0300
>> =20
>>     ITS#8015 replace memcpy() by memmove() for overlapped src & dst.
>> =20
>>     http://lwn.net/Articles/414467/
>> =20
>>     Initially a few cases have been detected using Valgrind.
>>     After that I manually reviewed all calls memcpy() and AC_MEMCPY()
>>     it the 2.4 branch.
>> =20
>>     Unfortunately, we can not expect that all of these mistakes
>>     corrected, but it is much more than nothing.
>> =20
>> diff --git a/libraries/liblber/encode.c b/libraries/liblber/encode.c
>> index e39fa07..3eb15c6 100644
>> --- a/libraries/liblber/encode.c
>> +++ b/libraries/liblber/encode.c
>> @@ -398,7 +398,7 @@ ber_start_seqorset(
>>                      return -1;
>>      }
>>      dest =3D *p;
>> -    AC_MEMCPY( dest, headptr, headlen );
>> +    memmove( dest, headptr, headlen );
>>      ber->ber_sos_ptr =3D dest + headlen;
>> =20
>>      ber->ber_sos_inner =3D dest + taglen - ber->ber_buf;
>> @@ -467,7 +467,7 @@ ber_put_seqorset( BerElement *ber )
>>              if ( unused !=3D 0 ) {
>>                      /* length(length) < the reserved SOS_LENLEN =
> bytes */
>>                      xlen -=3D unused;
>> -                    AC_MEMCPY( lenptr, p, xlen );
>> +                    memmove( lenptr, p, xlen );
>>                      ber->ber_sos_ptr =3D (char *) lenptr + xlen;
>>              }
>>      }
>> diff --git a/libraries/libldap/sasl.c b/libraries/libldap/sasl.c
>> index 8878d1f..4ad605f 100644
>> --- a/libraries/libldap/sasl.c
>> +++ b/libraries/libldap/sasl.c
>> @@ -628,7 +628,7 @@ sb_sasl_generic_drop_packet (
>> =20
>>      len =3D p->sec_buf_in.buf_ptr - p->sec_buf_in.buf_end;
>>      if ( len > 0 )
>> -            AC_MEMCPY( p->sec_buf_in.buf_base, =
> p->sec_buf_in.buf_base +
>> +            memmove( p->sec_buf_in.buf_base, p->sec_buf_in.buf_base =
> +
>>                      p->sec_buf_in.buf_end, len );
>> =20
>>      if ( len >=3D 4 ) {
>> diff --git a/libraries/liblutil/utils.c b/libraries/liblutil/utils.c
>> index 310380b..a783167 100644
>> --- a/libraries/liblutil/utils.c
>> +++ b/libraries/liblutil/utils.c
>> @@ -841,7 +841,7 @@ lutil_str2bin( struct berval *in, struct berval =
> *out, void *ctx )
>>                      num.buf[num.beg] =3D neg;
>>              }
>>              if ( num.beg )
>> -                    AC_MEMCPY( num.buf, num.buf+num.beg, num.len );
>> +                    memmove( num.buf, num.buf+num.beg, num.len );
>>              out->bv_len =3D num.len;
>> decfail:
>>              if ( tmp !=3D tmpbuf ) {
>> diff --git a/servers/slapd/aclparse.c b/servers/slapd/aclparse.c
>> index f5c244c..f935efc 100644
>> --- a/servers/slapd/aclparse.c
>> +++ b/servers/slapd/aclparse.c
>> @@ -2317,7 +2317,7 @@ acl_regex_normalized_dn(
>>                      for ( q =3D &p[2]; q[0] =3D=3D ' '; q++ ) {
>>                              /* DO NOTHING */ ;
>>                      }
>> -                    AC_MEMCPY( p+1, q, len-(q-str)+1);
>> +                    memmove( p+1, q, len-(q-str)+1);
>>              }
>>      }
>>      pattern->bv_val =3D str;
>> diff --git a/servers/slapd/ad.c b/servers/slapd/ad.c
>> index 6f6cb2f..2357452 100644
>> --- a/servers/slapd/ad.c
>> +++ b/servers/slapd/ad.c
>> @@ -277,7 +277,7 @@ int slap_bv2ad(
>>                              } else if ( rc > 0 ||
>>                                      ( rc =3D=3D 0 && =
> (unsigned)optlen > tags[i].bv_len ))
>>                              {
>> -                                    AC_MEMCPY( &tags[i+2], =
> &tags[i+1],
>> +                                    memmove( &tags[i+2], &tags[i+1],
>>                                              =
> (ntags-i-1)*sizeof(struct berval) );
>>                                      tags[i+1].bv_val =3D opt;
>>                                      tags[i+1].bv_len =3D optlen;
>> @@ -286,7 +286,7 @@ int slap_bv2ad(
>>                      }
>> =20
>>                      if( ntags ) {
>> -                            AC_MEMCPY( &tags[1], &tags[0],
>> +                            memmove( &tags[1], &tags[0],
>>                                      ntags*sizeof(struct berval) );
>>                      }
>>                      tags[0].bv_val =3D opt;
>> diff --git a/servers/slapd/back-bdb/attr.c =
> b/servers/slapd/back-bdb/attr.c
>> index 2f183b3..e4ab16f 100644
>> --- a/servers/slapd/back-bdb/attr.c
>> +++ b/servers/slapd/back-bdb/attr.c
>> @@ -71,7 +71,7 @@ ainfo_insert( struct bdb_info *bdb, AttrInfo *a )
>>      bdb->bi_attrs =3D ch_realloc( bdb->bi_attrs, ( bdb->bi_nattrs+1 =
> ) *=20
>>              sizeof( AttrInfo * ));
>>      if ( x < bdb->bi_nattrs )
>> -            AC_MEMCPY( &bdb->bi_attrs[x+1], &bdb->bi_attrs[x],
>> +            memmove( &bdb->bi_attrs[x+1], &bdb->bi_attrs[x],
>>                      ( bdb->bi_nattrs - x ) * sizeof( AttrInfo *));
>>      bdb->bi_attrs[x] =3D a;
>>      bdb->bi_nattrs++;
>> diff --git a/servers/slapd/back-bdb/idl.c =
> b/servers/slapd/back-bdb/idl.c
>> index c6bc9f3..f024245 100644
>> --- a/servers/slapd/back-bdb/idl.c
>> +++ b/servers/slapd/back-bdb/idl.c
>> @@ -204,7 +204,7 @@ int bdb_idl_insert( ID *ids, ID id )
>> =09
>>      } else {
>>              /* insert id */
>> -            AC_MEMCPY( &ids[x+1], &ids[x], (ids[0]-x) * sizeof(ID) =
> );
>> +            memmove( &ids[x+1], &ids[x], (ids[0]-x) * sizeof(ID) );
>>              ids[x] =3D id;
>>      }
>> =20
>> @@ -262,7 +262,7 @@ int bdb_idl_delete( ID *ids, ID id )
>>              }
>> =20
>>      } else {
>> -            AC_MEMCPY( &ids[x], &ids[x+1], (1+ids[0]-x) * sizeof(ID) =
> );
>> +            memmove( &ids[x], &ids[x+1], (1+ids[0]-x) * sizeof(ID) =
> );
>>      }
>> =20
>> #if IDL_DEBUG > 1
>> diff --git a/servers/slapd/back-ldap/config.c =
> b/servers/slapd/back-ldap/config.c
>> index 11a4ac4..4b5c394 100644
>> --- a/servers/slapd/back-ldap/config.c
>> +++ b/servers/slapd/back-ldap/config.c
>> @@ -1047,7 +1047,7 @@ ldap_back_cf_gen( ConfigArgs *c )
>> =20
>>                      if ( i ) {
>>                              bv.bv_len -=3D i;
>> -                            AC_MEMCPY( bv.bv_val, &bv.bv_val[ i ],
>> +                            memmove( bv.bv_val, &bv.bv_val[ i ],
>>                                      bv.bv_len + 1 );
>>                      }
>> =20
>> @@ -1239,7 +1239,7 @@ ldap_back_cf_gen( ConfigArgs *c )
>> =20
>>                              if ( i ) {
>>                                      bc.bv_len -=3D i;
>> -                                    AC_MEMCPY( bc.bv_val, =
> &bc.bv_val[ i ], bc.bv_len + 1 );
>> +                                    memmove( bc.bv_val, &bc.bv_val[ =
> i ], bc.bv_len + 1 );
>>                              }
>> =20
>>                              bv =3D bc;
>> @@ -1298,7 +1298,7 @@ ldap_back_cf_gen( ConfigArgs *c )
>> =20
>>                      if ( i ) {
>>                              bv.bv_len -=3D i;
>> -                            AC_MEMCPY( bv.bv_val, &bv.bv_val[ i ],
>> +                            memmove( bv.bv_val, &bv.bv_val[ i ],
>>                                      bv.bv_len + 1 );
>>                      }
>> =20
>> diff --git a/servers/slapd/back-ldap/search.c =
> b/servers/slapd/back-ldap/search.c
>> index eeab466..b100510 100644
>> --- a/servers/slapd/back-ldap/search.c
>> +++ b/servers/slapd/back-ldap/search.c
>> @@ -109,7 +109,7 @@ ldap_back_munge_filter(
>> =20
>>              ptr =3D filter->bv_val + ( ptr - oldfilter.bv_val );
>> =20
>> -            AC_MEMCPY( &ptr[ newbv->bv_len ],
>> +            memmove( &ptr[ newbv->bv_len ],
>>                              &ptr[ oldbv->bv_len ],=20
>>                              oldfilter.bv_len - ( ptr - =
> filter->bv_val ) - oldbv->bv_len + 1 );
>>              AC_MEMCPY( ptr, newbv->bv_val, newbv->bv_len );
>> diff --git a/servers/slapd/back-mdb/attr.c =
> b/servers/slapd/back-mdb/attr.c
>> index 5da9da9..38e513e 100644
>> --- a/servers/slapd/back-mdb/attr.c
>> +++ b/servers/slapd/back-mdb/attr.c
>> @@ -71,7 +71,7 @@ ainfo_insert( struct mdb_info *mdb, AttrInfo *a )
>>      mdb->mi_attrs =3D ch_realloc( mdb->mi_attrs, ( mdb->mi_nattrs+1 =
> ) *=20
>>              sizeof( AttrInfo * ));
>>      if ( x < mdb->mi_nattrs )
>> -            AC_MEMCPY( &mdb->mi_attrs[x+1], &mdb->mi_attrs[x],
>> +            memmove( &mdb->mi_attrs[x+1], &mdb->mi_attrs[x],
>>                      ( mdb->mi_nattrs - x ) * sizeof( AttrInfo *));
>>      mdb->mi_attrs[x] =3D a;
>>      mdb->mi_nattrs++;
>> diff --git a/servers/slapd/back-mdb/idl.c =
> b/servers/slapd/back-mdb/idl.c
>> index 3c2f986..c03f7c3 100644
>> --- a/servers/slapd/back-mdb/idl.c
>> +++ b/servers/slapd/back-mdb/idl.c
>> @@ -173,7 +173,7 @@ int mdb_idl_insert( ID *ids, ID id )
>> =09
>>      } else {
>>              /* insert id */
>> -            AC_MEMCPY( &ids[x+1], &ids[x], (ids[0]-x) * sizeof(ID) =
> );
>> +            memmove( &ids[x+1], &ids[x], (ids[0]-x) * sizeof(ID) );
>>              ids[x] =3D id;
>>      }
>> =20
>> @@ -231,7 +231,7 @@ static int mdb_idl_delete( ID *ids, ID id )
>>              }
>> =20
>>      } else {
>> -            AC_MEMCPY( &ids[x], &ids[x+1], (1+ids[0]-x) * sizeof(ID) =
> );
>> +            memmove( &ids[x], &ids[x+1], (1+ids[0]-x) * sizeof(ID) =
> );
>>      }
>> =20
>> #if IDL_DEBUG > 1
>> diff --git a/servers/slapd/back-meta/config.c =
> b/servers/slapd/back-meta/config.c
>> index e3164b0..daa5e8b 100644
>> --- a/servers/slapd/back-meta/config.c
>> +++ b/servers/slapd/back-meta/config.c
>> @@ -1340,7 +1340,7 @@ meta_back_cf_gen( ConfigArgs *c )
>> =20
>>                      if ( i ) {
>>                              bv.bv_len -=3D i;
>> -                            AC_MEMCPY( bv.bv_val, &bv.bv_val[ i ],
>> +                            memmove( bv.bv_val, &bv.bv_val[ i ],
>>                                      bv.bv_len + 1 );
>>                      }
>> =20
>> @@ -1597,7 +1597,7 @@ meta_back_cf_gen( ConfigArgs *c )
>> =20
>>                              if ( i ) {
>>                                      bc.bv_len -=3D i;
>> -                                    AC_MEMCPY( bc.bv_val, =
> &bc.bv_val[ i ], bc.bv_len + 1 );
>> +                                    memmove( bc.bv_val, &bc.bv_val[ =
> i ], bc.bv_len + 1 );
>>                              }
>> =20
>>                              bv =3D bc;
>> @@ -2720,7 +2720,7 @@ idassert-authzFrom     "dn:<rootdn>"
>>                      int len =3D strlen( argv[ 0 ] );
>> =20
>>                      ber_str2bv( line, 0, 0, &bv );
>> -                    AC_MEMCPY( &bv.bv_val[ len ], &bv.bv_val[ len + =
> 1 ],
>> +                    memmove( &bv.bv_val[ len ], &bv.bv_val[ len + 1 =
> ],
>>                              bv.bv_len - ( len + 1 ));
>>                      bv.bv_val[ bv.bv_len - 1] =3D '"';
>>                      ber_bvarray_add( &mt->mt_rwmap.rwm_bva_rewrite, =
> &bv );
>> diff --git a/servers/slapd/back-sql/util.c =
> b/servers/slapd/back-sql/util.c
>> index 3564527..7c77964 100644
>> --- a/servers/slapd/back-sql/util.c
>> +++ b/servers/slapd/back-sql/util.c
>> @@ -411,7 +411,7 @@ backsql_split_pattern(
>> =20
>>              } else if ( real_end[ 1 ] =3D=3D SPLIT_CHAR ) {
>>                      expected++;
>> -                    AC_MEMCPY( real_end, real_end + 1, strlen( =
> real_end ) );
>> +                    memmove( real_end, real_end + 1, strlen( =
> real_end ) );
>>                      end =3D strchr( real_end + 1, SPLIT_CHAR );
>>                      continue;
>>              }
>> diff --git a/servers/slapd/bconfig.c b/servers/slapd/bconfig.c
>> index 2214334..9655629 100644
>> --- a/servers/slapd/bconfig.c
>> +++ b/servers/slapd/bconfig.c
>> @@ -2353,7 +2353,7 @@ sortval_reject:
>>                                      s =3D ber_bvchr( &bv, '"' );
>>                                      assert( s !=3D NULL );
>>                                      /* move the trailing quote of =
> argv[0] to the end */
>> -                                    AC_MEMCPY( s, s + 1, bv.bv_len - =
> ( s - bv.bv_val ) );
>> +                                    memmove( s, s + 1, bv.bv_len - ( =
> s - bv.bv_val ) );
>>                                      bv.bv_val[ bv.bv_len - 1 ] =3D =
> '"';
>> =20
>>                              } else {
>> diff --git a/servers/slapd/config.c b/servers/slapd/config.c
>> index cdc17d9..5c0dd55 100644
>> --- a/servers/slapd/config.c
>> +++ b/servers/slapd/config.c
>> @@ -2159,12 +2159,12 @@ strtok_quote( char *line, char *sep, char =
> **quote_ptr )
>>                      } else {
>>                              inquote =3D 1;
>>                      }
>> -                    AC_MEMCPY( next, next + 1, strlen( next + 1 ) + =
> 1 );
>> +                    memmove( next, next + 1, strlen( next + 1 ) + 1 =
> );
>>                      break;
>> =20
>>              case '\\':
>>                      if ( next[1] )
>> -                            AC_MEMCPY( next,
>> +                            memmove( next,
>>                                          next + 1, strlen( next + 1 ) =
> + 1 );
>>                      next++;         /* dont parse the escaped =
> character */
>>                      break;
>> diff --git a/servers/slapd/controls.c b/servers/slapd/controls.c
>> index 9b51f95..6b1f1d7 100644
>> --- a/servers/slapd/controls.c
>> +++ b/servers/slapd/controls.c
>> @@ -1005,7 +1005,7 @@ slap_remove_control(
>>              op->o_tmpfree( op->o_ctrls[ j ], op->o_tmpmemctx );
>> =20
>>              if ( i > 1 ) {
>> -                    AC_MEMCPY( &op->o_ctrls[ j ], &op->o_ctrls[ j + =
> 1 ],
>> +                    memmove( &op->o_ctrls[ j ], &op->o_ctrls[ j + 1 =
> ],
>>                              ( i - j ) * sizeof( LDAPControl * ) );
>> =20
>>              } else {
>> diff --git a/servers/slapd/overlays/constraint.c =
> b/servers/slapd/overlays/constraint.c
>> index 096f32a..99844a5 100644
>> --- a/servers/slapd/overlays/constraint.c
>> +++ b/servers/slapd/overlays/constraint.c
>> @@ -401,7 +401,7 @@ constraint_cf_gen( ConfigArgs *c )
>>                                              rc =3D ARG_BAD_CONF;
>>                                              goto done;
>>                                      }
>> -                                    AC_MEMCPY( =
> &ap.lud->lud_filter[0], &ap.lud->lud_filter[1], len - 2 );
>> +                                    memmove( &ap.lud->lud_filter[0], =
> &ap.lud->lud_filter[1], len - 2 );
>>                                      ap.lud->lud_filter[len - 2] =3D =
> '\0';
>>                              }
>> =20
>> diff --git a/servers/slapd/overlays/memberof.c =
> b/servers/slapd/overlays/memberof.c
>> index 17cbae7..dcfb047 100644
>> --- a/servers/slapd/overlays/memberof.c
>> +++ b/servers/slapd/overlays/memberof.c
>> @@ -616,10 +616,10 @@ memberof_op_add( Operation *op, SlapReply *rs )
>>                                              break;
>>                                      }
>>      =09
>> -                                    AC_MEMCPY( &a->a_vals[ i ], =
> &a->a_vals[ i + 1 ],
>> +                                    memmove( &a->a_vals[ i ], =
> &a->a_vals[ i + 1 ],
>>                                              sizeof( struct berval ) =
> * ( j - i ) );
>>                                      if ( a->a_nvals !=3D a->a_vals ) =
> {
>> -                                            AC_MEMCPY( &a->a_nvals[ =
> i ], &a->a_nvals[ i + 1 ],
>> +                                            memmove( &a->a_nvals[ i =
> ], &a->a_nvals[ i + 1 ],
>>                                                      sizeof( struct =
> berval ) * ( j - i ) );
>>                                      }
>>                                      i--;
>> @@ -698,10 +698,10 @@ memberof_op_add( Operation *op, SlapReply *rs )
>>                                              break;
>>                                      }
>>      =09
>> -                                    AC_MEMCPY( &a->a_vals[ i ], =
> &a->a_vals[ i + 1 ],
>> +                                    memmove( &a->a_vals[ i ], =
> &a->a_vals[ i + 1 ],
>>                                              sizeof( struct berval ) =
> * ( j - i ) );
>>                                      if ( a->a_nvals !=3D a->a_vals ) =
> {
>> -                                            AC_MEMCPY( &a->a_nvals[ =
> i ], &a->a_nvals[ i + 1 ],
>> +                                            memmove( &a->a_nvals[ i =
> ], &a->a_nvals[ i + 1 ],
>>                                                      sizeof( struct =
> berval ) * ( j - i ) );
>>                                      }
>>                                      i--;
>> @@ -922,9 +922,9 @@ memberof_op_modify( Operation *op, SlapReply *rs )
>>                                                              break;
>>                                                      }
>>      =09
>> -                                                    AC_MEMCPY( =
> &ml->sml_values[ i ], &ml->sml_values[ i + 1 ],
>> +                                                    memmove( =
> &ml->sml_values[ i ], &ml->sml_values[ i + 1 ],
>>                                                              sizeof( =
> struct berval ) * ( j - i ) );
>> -                                                    AC_MEMCPY( =
> &ml->sml_nvalues[ i ], &ml->sml_nvalues[ i + 1 ],
>> +                                                    memmove( =
> &ml->sml_nvalues[ i ], &ml->sml_nvalues[ i + 1 ],
>>                                                              sizeof( =
> struct berval ) * ( j - i ) );
>>                                                      i--;
>>                                              }
>> @@ -1022,10 +1022,10 @@ memberof_op_modify( Operation *op, SlapReply =
> *rs )
>>                                                              break;
>>                                                      }
>>      =09
>> -                                                    AC_MEMCPY( =
> &ml->sml_values[ i ], &ml->sml_values[ i + 1 ],
>> +                                                    memmove( =
> &ml->sml_values[ i ], &ml->sml_values[ i + 1 ],
>>                                                              sizeof( =
> struct berval ) * ( j - i ) );
>>                                                      if ( =
> ml->sml_nvalues !=3D ml->sml_values ) {
>> -                                                            =
> AC_MEMCPY( &ml->sml_nvalues[ i ], &ml->sml_nvalues[ i + 1 ],
>> +                                                            memmove( =
> &ml->sml_nvalues[ i ], &ml->sml_nvalues[ i + 1 ],
>>                                                                      =
> sizeof( struct berval ) * ( j - i ) );
>>                                                      }
>>                                                      i--;
>> @@ -1140,10 +1140,10 @@ memberof_op_modify( Operation *op, SlapReply =
> *rs )
>>                                                      break;
>>                                              }
>> =09
>> -                                            AC_MEMCPY( =
> &ml->sml_values[ i ], &ml->sml_values[ i + 1 ],
>> +                                            memmove( =
> &ml->sml_values[ i ], &ml->sml_values[ i + 1 ],
>>                                                      sizeof( struct =
> berval ) * ( j - i ) );
>>                                              if ( ml->sml_nvalues !=3D =
> ml->sml_values ) {
>> -                                                    AC_MEMCPY( =
> &ml->sml_nvalues[ i ], &ml->sml_nvalues[ i + 1 ],
>> +                                                    memmove( =
> &ml->sml_nvalues[ i ], &ml->sml_nvalues[ i + 1 ],
>>                                                              sizeof( =
> struct berval ) * ( j - i ) );
>>                                              }
>>                                              i--;
>> diff --git a/servers/slapd/overlays/rwm.c =
> b/servers/slapd/overlays/rwm.c
>> index 1fbfac3..22a536a 100644
>> --- a/servers/slapd/overlays/rwm.c
>> +++ b/servers/slapd/overlays/rwm.c
>> @@ -2014,7 +2014,7 @@ rwm_bva_add(
>>              int     len =3D strlen( argv[ 0 ] );
>> =20
>>              ber_str2bv( line, 0, 0, &bv );
>> -            AC_MEMCPY( &bv.bv_val[ len ], &bv.bv_val[ len + 1 ],
>> +            memmove( &bv.bv_val[ len ], &bv.bv_val[ len + 1 ],
>>                      bv.bv_len - ( len + 1 ) );
>>              bv.bv_val[ bv.bv_len - 1 ] =3D '"';
>> =20
>> diff --git a/servers/slapd/sasl.c b/servers/slapd/sasl.c
>> index b47a528..7436614 100644
>> --- a/servers/slapd/sasl.c
>> +++ b/servers/slapd/sasl.c
>> @@ -1342,7 +1342,7 @@ slap_sasl_peer2ipport( struct berval *peer )
>>              *p =3D ';';
>>              if ( isv6 ) {
>>                      assert( p[-1] =3D=3D ']' );
>> -                    AC_MEMCPY( &p[-1], p, plen - ( p - ipport ) + 1 =
> );
>> +                    memmove( &p[-1], p, plen - ( p - ipport ) + 1 );
>>              }
>> =20
>>      } else if ( isv6 ) {
>> diff --git a/servers/slapd/saslauthz.c b/servers/slapd/saslauthz.c
>> index 5e0ebbe..5449603 100644
>> --- a/servers/slapd/saslauthz.c
>> +++ b/servers/slapd/saslauthz.c
>> @@ -182,14 +182,14 @@ int slap_parse_user( struct berval *id, struct =
> berval *user,
>>      if ( !BER_BVISNULL( mech ) ) {
>>              assert( mech->bv_val =3D=3D id->bv_val + 2 );
>> =20
>> -            AC_MEMCPY( mech->bv_val - 2, mech->bv_val, mech->bv_len =
> + 1 );
>> +            memmove( mech->bv_val - 2, mech->bv_val, mech->bv_len + =
> 1 );
>>              mech->bv_val -=3D 2;
>>      }
>> =20
>>      if ( !BER_BVISNULL( realm ) ) {
>>              assert( realm->bv_val >=3D id->bv_val + 2 );
>> =20
>> -            AC_MEMCPY( realm->bv_val - 2, realm->bv_val, =
> realm->bv_len + 1 );
>> +            memmove( realm->bv_val - 2, realm->bv_val, realm->bv_len =
> + 1 );
>>              realm->bv_val -=3D 2;
>>      }
>> =20
>> =20
>> --------------090408030902080204080503--
>> =20
>> =20
>> =20
>
>
>
>
>


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



Reply via email to