summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ext/ldap/ldap.c15
1 files changed, 6 insertions, 9 deletions
diff --git a/ext/ldap/ldap.c b/ext/ldap/ldap.c
index d980e4e52a..49e3125b93 100644
--- a/ext/ldap/ldap.c
+++ b/ext/ldap/ldap.c
@@ -1615,18 +1615,15 @@ PHP_FUNCTION(ldap_get_option)
{
char *val = NULL;
- if (ldap_get_option(ld->link, opt, &val)) {
- RETURN_FALSE;
- }
- if (val != NULL) {
- if (*val != '\0') {
- zval_dtor(*retval);
- ZVAL_STRING(*retval, val, 1);
+ if (ldap_get_option(ld->link, opt, &val) || val == NULL || *val == '\0') {
+ if (val) {
+ ldap_memfree(val);
}
- ldap_memfree(val);
- } else {
RETURN_FALSE;
}
+ zval_dtor(*retval);
+ ZVAL_STRING(*retval, val, 1);
+ ldap_memfree(val);
} break;
/* options not implemented
case LDAP_OPT_SERVER_CONTROLS: