size_t str_in_len;
size_t str_out_len;
- str_in_len = strlen( str_in );
+ str_in_len = strlen( str_in ) + 1;//process the terminating NUL too
str_out_len = ( 2 * str_in_len );
if (ldapconvbuffer==NULL || ldapconvbuffersize<str_out_len) {
ldapconvbuffersize=str_out_len;
- str_out = realloc(ldapconvbuffer,str_out_len);
+ str_out = realloc(ldapconvbuffer,ldapconvbuffersize);
if (!str_out) {
debuga(_("Not enough memory to convert a LDAP returned string: %lu bytes required\n"),(unsigned long int)str_out_len);
exit(EXIT_FAILURE);
ldapconvbuffer = str_out;
} else {
str_out = ldapconvbuffer;
+ str_out_len = ldapconvbuffersize;
}
str_in_orig = str_in;
return_value = iconv(ldapiconv, (ICONV_CONST char **)&str_in, &str_in_len, &str_out, &str_out_len );