fix bug in fmt_ldapsearchfilter

free memory for requests we can't handle yet
This commit is contained in:
leitner
2004-08-03 22:34:38 +00:00
parent dee7f4c9c1
commit 4f2bfc0074
2 changed files with 48 additions and 36 deletions

View File

@@ -784,6 +784,8 @@ found:
x=x->next;
} while (x);
}
/* TODO: do something with the modify request ;-) */
free_ldapmodifyrequest(&mr);
} else {
buffer_putsflush(buffer_2,"couldn't parse modify request!\n");
exit(1);
@@ -795,39 +797,41 @@ found:
break;
case AddRequest:
{
struct AddRequest ar;
struct AddRequest ar;
// buffer_putsflush(buffer_2,"AddRequest!\n");
if ((tmp=scan_ldapaddrequest(buf+res,buf+res+len,&ar))) {
} else {
buffer_putsflush(buffer_2,"couldn't parse add request!\n");
exit(1);
}
/* TODO: do something with the add request ;-) */
free_ldapaddrequest(&ar);
} else {
buffer_putsflush(buffer_2,"couldn't parse add request!\n");
exit(1);
}
buffer_put(buffer_1,ar.entry.s,ar.entry.l);
buffer_putsflush(buffer_1,"\n");
if (verbose) { /* iterate all attributes */
struct Addition * x;
struct AttributeDescriptionList * y;
for (x = &ar.a;x;x=x->next) {
for (y = &x->vals;y;y=y->next) {
buffer_put(buffer_1,x->AttributeDescription.s,x->AttributeDescription.l);
buffer_puts(buffer_1,": ");
buffer_put(buffer_1,y->a.s,y->a.l);
buffer_putsflush(buffer_1,"\n");
}
}
}
buffer_put(buffer_1,ar.entry.s,ar.entry.l);
buffer_putsflush(buffer_1,"\n");
if (verbose) { /* iterate all attributes */
struct Addition * x;
struct AttributeDescriptionList * y;
for (x = &ar.a;x;x=x->next) {
for (y = &x->vals;y;y=y->next) {
buffer_put(buffer_1,x->AttributeDescription.s,x->AttributeDescription.l);
buffer_puts(buffer_1,": ");
buffer_put(buffer_1,y->a.s,y->a.l);
buffer_putsflush(buffer_1,"\n");
}
}
}
{
char outbuf[1024];
int s=100;
int len=fmt_ldapbindresponse(outbuf+s,0,"","","");
int hlen=fmt_ldapmessage(0,messageid,AddResponse,len);
fmt_ldapmessage(outbuf+s-hlen,messageid,AddResponse,len);
write(out,outbuf+s-hlen,len+hlen);
}
}
break;
{
char outbuf[1024];
int s=100;
int len=fmt_ldapbindresponse(outbuf+s,0,"","","");
int hlen=fmt_ldapmessage(0,messageid,AddResponse,len);
fmt_ldapmessage(outbuf+s-hlen,messageid,AddResponse,len);
write(out,outbuf+s-hlen,len+hlen);
}
}
break;
default:
buffer_puts(buffer_2,"unknown request type ");
buffer_putulong(buffer_2,op);