try not to leak memory in case of parse error

This commit is contained in:
leitner
2002-07-16 23:00:26 +00:00
parent d406931b14
commit 7b68d29ade
10 changed files with 82 additions and 2 deletions

View File

@@ -6,6 +6,8 @@ int scan_ldapsearchrequest(const char* src,const char* max,
struct SearchRequest* s) {
int res,tmp;
unsigned long etmp;
s->attributes=0;
s->filter=0;
if (!(res=scan_ldapstring(src,max,&s->baseObject))) goto error;
if (!(tmp=scan_asn1ENUMERATED(src+res,max,&etmp))) goto error;
if (etmp>2) goto error; s->scope=etmp; res+=tmp;
@@ -40,5 +42,11 @@ int scan_ldapsearchrequest(const char* src,const char* max,
return res;
}
error:
free_ldapsearchrequest(s);
return 0;
}
void free_ldapsearchrequest(struct SearchRequest* s) {
free_ldapadl(s->attributes->next);
free_ldapsearchfilter(s->filter);
}