diff options
Diffstat (limited to 'ext/ldap/ldap.c')
| -rw-r--r-- | ext/ldap/ldap.c | 15 |
1 files changed, 11 insertions, 4 deletions
diff --git a/ext/ldap/ldap.c b/ext/ldap/ldap.c index f1e4ae4329..d980e4e52a 100644 --- a/ext/ldap/ldap.c +++ b/ext/ldap/ldap.c @@ -1613,13 +1613,20 @@ PHP_FUNCTION(ldap_get_option) case LDAP_OPT_MATCHED_DN: #endif { - char *val; + char *val = NULL; + if (ldap_get_option(ld->link, opt, &val)) { RETURN_FALSE; } - zval_dtor(*retval); - ZVAL_STRING(*retval, val, 1); - ldap_memfree(val); + if (val != NULL) { + if (*val != '\0') { + zval_dtor(*retval); + ZVAL_STRING(*retval, val, 1); + } + ldap_memfree(val); + } else { + RETURN_FALSE; + } } break; /* options not implemented case LDAP_OPT_SERVER_CONTROLS: |
