You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
62 lines
2.8 KiB
62 lines
2.8 KiB
allow unsetting of tls_* syncrepl options |
|
|
|
Author: Patrick Monnerat <pm@datasphere.ch> |
|
Upstream ITS: #7042 |
|
Resolves: #734187 |
|
|
|
diff --git a/libraries/libldap/tls2.c b/libraries/libldap/tls2.c |
|
index 654a4bf..10b993b 100644 |
|
--- a/libraries/libldap/tls2.c |
|
+++ b/libraries/libldap/tls2.c |
|
@@ -735,27 +735,27 @@ ldap_pvt_tls_set_option( LDAP *ld, int option, void *arg ) |
|
return 0; |
|
case LDAP_OPT_X_TLS_CACERTFILE: |
|
if ( lo->ldo_tls_cacertfile ) LDAP_FREE( lo->ldo_tls_cacertfile ); |
|
- lo->ldo_tls_cacertfile = arg ? LDAP_STRDUP( (char *) arg ) : NULL; |
|
+ lo->ldo_tls_cacertfile = (arg && *(char *)arg) ? LDAP_STRDUP( (char *) arg ) : NULL; |
|
return 0; |
|
case LDAP_OPT_X_TLS_CACERTDIR: |
|
if ( lo->ldo_tls_cacertdir ) LDAP_FREE( lo->ldo_tls_cacertdir ); |
|
- lo->ldo_tls_cacertdir = arg ? LDAP_STRDUP( (char *) arg ) : NULL; |
|
+ lo->ldo_tls_cacertdir = (arg && *(char *)arg) ? LDAP_STRDUP( (char *) arg ) : NULL; |
|
return 0; |
|
case LDAP_OPT_X_TLS_CERTFILE: |
|
if ( lo->ldo_tls_certfile ) LDAP_FREE( lo->ldo_tls_certfile ); |
|
- lo->ldo_tls_certfile = arg ? LDAP_STRDUP( (char *) arg ) : NULL; |
|
+ lo->ldo_tls_certfile = (arg && *(char *)arg) ? LDAP_STRDUP( (char *) arg ) : NULL; |
|
return 0; |
|
case LDAP_OPT_X_TLS_KEYFILE: |
|
if ( lo->ldo_tls_keyfile ) LDAP_FREE( lo->ldo_tls_keyfile ); |
|
- lo->ldo_tls_keyfile = arg ? LDAP_STRDUP( (char *) arg ) : NULL; |
|
+ lo->ldo_tls_keyfile = (arg && *(char *)arg) ? LDAP_STRDUP( (char *) arg ) : NULL; |
|
return 0; |
|
case LDAP_OPT_X_TLS_DHFILE: |
|
if ( lo->ldo_tls_dhfile ) LDAP_FREE( lo->ldo_tls_dhfile ); |
|
- lo->ldo_tls_dhfile = arg ? LDAP_STRDUP( (char *) arg ) : NULL; |
|
+ lo->ldo_tls_dhfile = (arg && *(char *)arg) ? LDAP_STRDUP( (char *) arg ) : NULL; |
|
return 0; |
|
case LDAP_OPT_X_TLS_CRLFILE: /* GnuTLS only */ |
|
if ( lo->ldo_tls_crlfile ) LDAP_FREE( lo->ldo_tls_crlfile ); |
|
- lo->ldo_tls_crlfile = arg ? LDAP_STRDUP( (char *) arg ) : NULL; |
|
+ lo->ldo_tls_crlfile = (arg && *(char *)arg) ? LDAP_STRDUP( (char *) arg ) : NULL; |
|
return 0; |
|
case LDAP_OPT_X_TLS_REQUIRE_CERT: |
|
if ( !arg ) return -1; |
|
@@ -783,7 +783,7 @@ ldap_pvt_tls_set_option( LDAP *ld, int option, void *arg ) |
|
#endif |
|
case LDAP_OPT_X_TLS_CIPHER_SUITE: |
|
if ( lo->ldo_tls_ciphersuite ) LDAP_FREE( lo->ldo_tls_ciphersuite ); |
|
- lo->ldo_tls_ciphersuite = arg ? LDAP_STRDUP( (char *) arg ) : NULL; |
|
+ lo->ldo_tls_ciphersuite = (arg && *(char *)arg) ? LDAP_STRDUP( (char *) arg ) : NULL; |
|
return 0; |
|
|
|
case LDAP_OPT_X_TLS_PROTOCOL_MIN: |
|
@@ -794,7 +794,7 @@ ldap_pvt_tls_set_option( LDAP *ld, int option, void *arg ) |
|
if ( ld != NULL ) |
|
return -1; |
|
if ( lo->ldo_tls_randfile ) LDAP_FREE (lo->ldo_tls_randfile ); |
|
- lo->ldo_tls_randfile = arg ? LDAP_STRDUP( (char *) arg ) : NULL; |
|
+ lo->ldo_tls_randfile = (arg && *(char *)arg) ? LDAP_STRDUP( (char *) arg ) : NULL; |
|
break; |
|
case LDAP_OPT_X_TLS_NEWCTX: |
|
if ( !arg ) return -1;
|
|
|