diff --git a/libraries/libldif/line64.c b/libraries/libldif/line64.c index d12ba1866c..4af9649a9f 100644 --- a/libraries/libldif/line64.c +++ b/libraries/libldif/line64.c @@ -223,14 +223,16 @@ done: } if( !url && value != NULL ) { - value = ber_strdup( value ); - if( value == NULL ) { + p = ber_memalloc( vlen ); + if( p == NULL ) { ber_pvt_log_printf( LDAP_DEBUG_ANY, ldif_debug, "ldif_parse_line: value malloc failed\n"); ber_memfree( type ); ber_memfree( freeme ); return( -1 ); } + memcpy( p, value, vlen ); + value = p; } ber_memfree( freeme );