OpenLDAP 2.4.17 Engineering
Fixed libldap gnutls private key init (ITS#6053)
Fixed liblutil opendir/closedir on windows (ITS#6041)
- Fixed liblutil for _GNU_SOURCE (ITS#5464,ITS#5666)
+ Fixed liblutil to use ber_strnlen (ITS#5464,ITS#5666,ITS#6080)
Fixed slapd errno handling (ITS#6037)
Fixed slapd global alloc handling (ITS#6054)
Fixed slapd moduleload with static backends and modules (ITS#6016)
ber_strdup LDAP_P((
LDAP_CONST char * ));
+LBER_F( ber_len_t )
+ber_strnlen LDAP_P((
+ LDAP_CONST char *s, ber_len_t len ));
+
+LBER_F( char * )
+ber_strndup LDAP_P((
+ LDAP_CONST char *s, ber_len_t l ));
+
LBER_F( struct berval * )
ber_bvreplace LDAP_P((
struct berval *dst, LDAP_CONST struct berval *src ));
return ber_strdup_x( s, NULL );
}
+ber_len_t
+ber_strnlen( LDAP_CONST char *s, ber_len_t len )
+{
+ ber_len_t l;
+
+ for ( l = 0; l < len && s[l] != '\0'; l++ ) ;
+
+ return l;
+}
+
char *
ber_strndup_x( LDAP_CONST char *s, ber_len_t l, void *ctx )
{
return NULL;
}
- len = strlen( s );
-
- if ( len > l ) {
- len = l;
- }
+ len = ber_strnlen( s, l );
if ( (p = ber_memalloc_x( len + 1, ctx )) == NULL ) {
ber_errno = LBER_ERROR_MEMORY;