Skip to content

Commit 630b2ac

Browse files
committed
server config BUGFIX only dup valid fields
Fixes #578
1 parent 4581d19 commit 630b2ac

1 file changed

Lines changed: 4 additions & 4 deletions

File tree

src/server_config.c

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5531,7 +5531,7 @@ nc_server_config_ssh_dup(const struct nc_server_ssh_opts *src, struct nc_server_
55315531
dst_hostkey->key.pubkey.data = strdup(src_hostkey->key.pubkey.data);
55325532
NC_CHECK_ERRMEM_GOTO(!dst_hostkey->key.pubkey.data, rc = 1, cleanup);
55335533
}
5534-
} else {
5534+
} else if (src_hostkey->store == NC_STORE_KEYSTORE) {
55355535
dst_hostkey->ks_ref = strdup(src_hostkey->ks_ref);
55365536
NC_CHECK_ERRMEM_GOTO(!dst_hostkey->ks_ref, rc = 1, cleanup);
55375537
}
@@ -5643,7 +5643,7 @@ nc_server_config_tls_dup(const struct nc_server_tls_opts *src, struct nc_server_
56435643
NC_CHECK_ERRMEM_GOTO(!(*dst)->local.key.pubkey.data, rc = 1, cleanup);
56445644
(*dst)->local.cert.data = strdup(src->local.cert.data);
56455645
NC_CHECK_ERRMEM_GOTO(!(*dst)->local.cert.data, rc = 1, cleanup);
5646-
} else {
5646+
} else if (src->cert_store == NC_STORE_KEYSTORE) {
56475647
(*dst)->keystore.asym_key_ref = strdup(src->keystore.asym_key_ref);
56485648
NC_CHECK_ERRMEM_GOTO(!(*dst)->keystore.asym_key_ref, rc = 1, cleanup);
56495649
(*dst)->keystore.cert_ref = strdup(src->keystore.cert_ref);
@@ -5664,7 +5664,7 @@ nc_server_config_tls_dup(const struct nc_server_tls_opts *src, struct nc_server_
56645664
NC_CHECK_ERRMEM_GOTO(!dst_ca->ca_certs[i].data, rc = 1, cleanup);
56655665
LY_ARRAY_INCREMENT(dst_ca->ca_certs);
56665666
}
5667-
} else {
5667+
} else if (src_ca->ca_certs_store == NC_STORE_TRUSTSTORE) {
56685668
dst_ca->ca_cert_bag_ts_ref = strdup(src_ca->ca_cert_bag_ts_ref);
56695669
NC_CHECK_ERRMEM_GOTO(!dst_ca->ca_cert_bag_ts_ref, rc = 1, cleanup);
56705670
}
@@ -5679,7 +5679,7 @@ nc_server_config_tls_dup(const struct nc_server_tls_opts *src, struct nc_server_
56795679
NC_CHECK_ERRMEM_GOTO(!dst_ca->ee_certs[i].data, rc = 1, cleanup);
56805680
LY_ARRAY_INCREMENT(dst_ca->ee_certs);
56815681
}
5682-
} else {
5682+
} else if (src_ca->ee_certs_store == NC_STORE_TRUSTSTORE) {
56835683
dst_ca->ee_cert_bag_ts_ref = strdup(src_ca->ee_cert_bag_ts_ref);
56845684
NC_CHECK_ERRMEM_GOTO(!dst_ca->ee_cert_bag_ts_ref, rc = 1, cleanup);
56855685
}

0 commit comments

Comments
 (0)