From 5f9e750486e0e0370dbe04ba6108e51ae967a2c7 Mon Sep 17 00:00:00 2001 From: Simon Rettberg Date: Thu, 1 Jun 2017 17:54:59 +0200 Subject: Fix PRESENT filter handling --- fmt_ldapsearchfilter.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'fmt_ldapsearchfilter.c') diff --git a/fmt_ldapsearchfilter.c b/fmt_ldapsearchfilter.c index ceb3746..380bb15 100644 --- a/fmt_ldapsearchfilter.c +++ b/fmt_ldapsearchfilter.c @@ -51,7 +51,7 @@ size_t fmt_ldapsearchfilter(char* dest,const struct Filter* f) { } break; case PRESENT: - return fmt_asn1string(dest,PRIVATE,PRIMITIVE,(enum asn1_tag)f->type,f->ava.desc.s,f->ava.desc.l); + sum=fmt_asn1string(dest,PRIVATE,PRIMITIVE,(enum asn1_tag)f->type,f->ava.desc.s,f->ava.desc.l); break; default: return 0; } @@ -61,6 +61,7 @@ size_t fmt_ldapsearchfilter(char* dest,const struct Filter* f) { if (dest) sum+=fmt_ldapsearchfilter(dest+sum,f->next); else sum+=fmt_ldapsearchfilter(dest,f->next); } + if (f->type == PRESENT) return sum; tmp=fmt_asn1length(0,savesum); if (!dest) return sum+tmp+1; -- cgit v1.2.3-55-g7522