diff --git a/ssl/ssl_ciph.c b/ssl/ssl_ciph.c index 038412a92cbd661f0328bcb3d71d55f11944a234..b071a6309fdf21217d8924cb16428409a984160d 100644 --- a/ssl/ssl_ciph.c +++ b/ssl/ssl_ciph.c @@ -740,11 +740,11 @@ static int ssl_cipher_process_rulestr(const char *rule_str, if (!found) break; /* ignore this entry */ - algorithms |= (ca_list[j]->algorithms & ~mask) | - (ca_list[j]->algorithms & algorithms & mask); + algorithms = (ca_list[j]->algorithms & ~mask) | + (ca_list[j]->algorithms & algorithms & mask); mask |= ca_list[j]->mask; - algo_strength |= (ca_list[j]->algo_strength & ~mask_strength) | - (ca_list[j]->algo_strength & algorithms & mask_strength); + algo_strength = (ca_list[j]->algo_strength & ~mask_strength) | + (ca_list[j]->algo_strength & algo_strength & mask_strength); mask_strength |= ca_list[j]->mask_strength; if (!multi) break;