diff options
Diffstat (limited to 'ext/ldap/ldap.c')
-rw-r--r-- | ext/ldap/ldap.c | 15 |
1 files changed, 6 insertions, 9 deletions
diff --git a/ext/ldap/ldap.c b/ext/ldap/ldap.c index 4d70b6d439..fde7842afa 100644 --- a/ext/ldap/ldap.c +++ b/ext/ldap/ldap.c @@ -1665,18 +1665,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: |