diff options
Diffstat (limited to 'ldap/servers/plugins/deref/deref.c')
-rw-r--r-- | ldap/servers/plugins/deref/deref.c | 6 |
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); |