]> git.ipfire.org Git - thirdparty/openldap.git/commitdiff
ITS#7042 Allow unsetting of tls_* syncrepl options.
authorPatrick Monnerat <patrick@monnerat.net>
Sat, 21 Oct 2017 15:35:32 +0000 (16:35 +0100)
committerOndřej Kuzník <ondra@mistotebe.net>
Tue, 11 Jun 2019 13:36:03 +0000 (15:36 +0200)
This can be done by setting them to an empty string value.

libraries/libldap/tls2.c

index b887e7fecdb3fae783b601c6a3011950f7a5932a..7ee303d25216614c7285b286d3b00cb281026129 100644 (file)
@@ -866,31 +866,31 @@ 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_ECNAME:
                if ( lo->ldo_tls_ecname ) LDAP_FREE( lo->ldo_tls_ecname );
-               lo->ldo_tls_ecname = arg ? LDAP_STRDUP( (char *) arg ) : NULL;
+               lo->ldo_tls_ecname = (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;
@@ -918,7 +918,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:
@@ -929,7 +929,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;