X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=servers%2Fslurpd%2Fre.c;h=ea2960f67142255b964c733445b79931151422bc;hb=96363877618d6719c79023b8857054375735b567;hp=18043d98f8ace277efb6e44eaeae2e3c3989ea7c;hpb=fcbca73f90d6f4dd09e7ff34533b6ac1baff2135;p=openldap diff --git a/servers/slurpd/re.c b/servers/slurpd/re.c index 18043d98f8..ea2960f671 100644 --- a/servers/slurpd/re.c +++ b/servers/slurpd/re.c @@ -33,7 +33,7 @@ extern void ch_free( char *p ); #ifndef SYSERRLIST_IN_STDIO extern char *sys_errlist[]; -#endif /* SYSERRLIST_IN_STDIO +#endif /* SYSERRLIST_IN_STDIO */ /* Forward references */ static Rh *get_repl_hosts( char *, int *, char ** ); @@ -184,7 +184,9 @@ Re_parse( state |= GOT_TIME; break; case T_DN: - re->re_dn = strdup( value ); + re->re_dn = ch_malloc( len + 1 ); + memcpy( re->re_dn, value, len ); + re->re_dn[ len ]='\0'; state |= GOT_DN; break; default: @@ -224,7 +226,9 @@ Re_parse( sizeof( Mi ) * ( nml + 2 )); re->re_mods[ nml ].mi_type = strdup( type ); if ( value != NULL ) { - re->re_mods[ nml ].mi_val = strdup( value ); + re->re_mods[ nml ].mi_val = ch_malloc( len + 1 ); + memcpy( re->re_mods[ nml ].mi_val, value, len ); + re->re_mods[ nml ].mi_val[ len ] = '\0'; re->re_mods[ nml ].mi_len = len; } else { re->re_mods[ nml ].mi_val = NULL;