summaryrefslogtreecommitdiffstats
path: root/ldap/servers/plugins/deref/deref.c
diff options
context:
space:
mode:
Diffstat (limited to 'ldap/servers/plugins/deref/deref.c')
-rw-r--r--ldap/servers/plugins/deref/deref.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/ldap/servers/plugins/deref/deref.c b/ldap/servers/plugins/deref/deref.c
index e7fdaa5c..fb6a54a3 100644
--- a/ldap/servers/plugins/deref/deref.c
+++ b/ldap/servers/plugins/deref/deref.c
@@ -380,6 +380,12 @@ deref_parse_ctrl_value(DerefSpecList *speclist, const struct berval *ctrlbv, int
PR_ASSERT(ctrlbv && ctrlbv->bv_val && ctrlbv->bv_len && ldapcode && ldaperrtext);
+ if (!ctrlbv || !ctrlbv->bv_val) {
+ *ldapcode = LDAP_PROTOCOL_ERROR;
+ *ldaperrtext = "Empty deref control value";
+ return;
+ }
+
ber = ber_init((struct berval *)ctrlbv);
for (tag = ber_first_element(ber, &len, &last);
(tag != LBER_ERROR) && (tag != LBER_END_OF_SEQORSET);