int ret;
if (!fr_sbuff_next_if_char(&sbuff, '=')) {
+ LDAPControl **s = sss;
fr_strerror_const("Server side sort extension must be "
"in the format \"[!]sss=<key>[,key]\"");
+ error:
+ while (s < sss_p) {
+ if (*s) ldap_control_free(*s);
+ s++;
+ }
return -1;
}
if (ret != LDAP_SUCCESS) {
fr_strerror_printf("Invalid server side sort value \"%s\": %s",
fr_sbuff_current(&sbuff), ldap_err2string(ret));
- return -1;
+ goto error;
}
if (*sss_p) ldap_control_free(*sss_p);
if (ret != LDAP_SUCCESS) {
fr_strerror_printf("Failed creating server sort control: %s",
ldap_err2string(ret));
- return -1;
+ goto error;
}
sss_p++;