mirror of
https://github.com/openssl/openssl.git
synced 2024-12-12 03:23:59 +08:00
Fix another bug introduced yesterday when deleting Fortezza stuff:
make sure 'mask' is initialized in ssl_cipher_get_disabled(). Also simplify code by removing some unused arguments in static functions.
This commit is contained in:
parent
4dfc8f1f0b
commit
a717831da4
@ -480,7 +480,7 @@ static void ll_append_tail(CIPHER_ORDER **head, CIPHER_ORDER *curr,
|
|||||||
|
|
||||||
static unsigned long ssl_cipher_get_disabled(void)
|
static unsigned long ssl_cipher_get_disabled(void)
|
||||||
{
|
{
|
||||||
unsigned long mask;
|
unsigned long mask = 0;
|
||||||
|
|
||||||
#ifdef OPENSSL_NO_RSA
|
#ifdef OPENSSL_NO_RSA
|
||||||
mask |= SSL_aRSA|SSL_kRSA;
|
mask |= SSL_aRSA|SSL_kRSA;
|
||||||
@ -628,7 +628,7 @@ static void ssl_cipher_collect_aliases(SSL_CIPHER **ca_list,
|
|||||||
static void ssl_cipher_apply_rule(unsigned long cipher_id,
|
static void ssl_cipher_apply_rule(unsigned long cipher_id,
|
||||||
unsigned long algorithms, unsigned long mask,
|
unsigned long algorithms, unsigned long mask,
|
||||||
unsigned long algo_strength, unsigned long mask_strength,
|
unsigned long algo_strength, unsigned long mask_strength,
|
||||||
int rule, int strength_bits, CIPHER_ORDER *co_list,
|
int rule, int strength_bits,
|
||||||
CIPHER_ORDER **head_p, CIPHER_ORDER **tail_p)
|
CIPHER_ORDER **head_p, CIPHER_ORDER **tail_p)
|
||||||
{
|
{
|
||||||
CIPHER_ORDER *head, *tail, *curr, *curr2, *tail2;
|
CIPHER_ORDER *head, *tail, *curr, *curr2, *tail2;
|
||||||
@ -731,8 +731,7 @@ static void ssl_cipher_apply_rule(unsigned long cipher_id,
|
|||||||
*tail_p = tail;
|
*tail_p = tail;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int ssl_cipher_strength_sort(CIPHER_ORDER *co_list,
|
static int ssl_cipher_strength_sort(CIPHER_ORDER **head_p,
|
||||||
CIPHER_ORDER **head_p,
|
|
||||||
CIPHER_ORDER **tail_p)
|
CIPHER_ORDER **tail_p)
|
||||||
{
|
{
|
||||||
int max_strength_bits, i, *number_uses;
|
int max_strength_bits, i, *number_uses;
|
||||||
@ -778,15 +777,15 @@ static int ssl_cipher_strength_sort(CIPHER_ORDER *co_list,
|
|||||||
for (i = max_strength_bits; i >= 0; i--)
|
for (i = max_strength_bits; i >= 0; i--)
|
||||||
if (number_uses[i] > 0)
|
if (number_uses[i] > 0)
|
||||||
ssl_cipher_apply_rule(0, 0, 0, 0, 0, CIPHER_ORD, i,
|
ssl_cipher_apply_rule(0, 0, 0, 0, 0, CIPHER_ORD, i,
|
||||||
co_list, head_p, tail_p);
|
head_p, tail_p);
|
||||||
|
|
||||||
OPENSSL_free(number_uses);
|
OPENSSL_free(number_uses);
|
||||||
return(1);
|
return(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
static int ssl_cipher_process_rulestr(const char *rule_str,
|
static int ssl_cipher_process_rulestr(const char *rule_str,
|
||||||
CIPHER_ORDER *co_list, CIPHER_ORDER **head_p,
|
CIPHER_ORDER **head_p, CIPHER_ORDER **tail_p,
|
||||||
CIPHER_ORDER **tail_p, SSL_CIPHER **ca_list)
|
SSL_CIPHER **ca_list)
|
||||||
{
|
{
|
||||||
unsigned long algorithms, mask, algo_strength, mask_strength;
|
unsigned long algorithms, mask, algo_strength, mask_strength;
|
||||||
const char *l, *start, *buf;
|
const char *l, *start, *buf;
|
||||||
@ -927,8 +926,7 @@ static int ssl_cipher_process_rulestr(const char *rule_str,
|
|||||||
ok = 0;
|
ok = 0;
|
||||||
if ((buflen == 8) &&
|
if ((buflen == 8) &&
|
||||||
!strncmp(buf, "STRENGTH", 8))
|
!strncmp(buf, "STRENGTH", 8))
|
||||||
ok = ssl_cipher_strength_sort(co_list,
|
ok = ssl_cipher_strength_sort(head_p, tail_p);
|
||||||
head_p, tail_p);
|
|
||||||
else
|
else
|
||||||
SSLerr(SSL_F_SSL_CIPHER_PROCESS_RULESTR,
|
SSLerr(SSL_F_SSL_CIPHER_PROCESS_RULESTR,
|
||||||
SSL_R_INVALID_COMMAND);
|
SSL_R_INVALID_COMMAND);
|
||||||
@ -947,7 +945,7 @@ static int ssl_cipher_process_rulestr(const char *rule_str,
|
|||||||
{
|
{
|
||||||
ssl_cipher_apply_rule(cipher_id, algorithms, mask,
|
ssl_cipher_apply_rule(cipher_id, algorithms, mask,
|
||||||
algo_strength, mask_strength, rule, -1,
|
algo_strength, mask_strength, rule, -1,
|
||||||
co_list, head_p, tail_p);
|
head_p, tail_p);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -1033,15 +1031,14 @@ STACK_OF(SSL_CIPHER) *ssl_create_cipher_list(const SSL_METHOD *ssl_method,
|
|||||||
if (strncmp(rule_str,"DEFAULT",7) == 0)
|
if (strncmp(rule_str,"DEFAULT",7) == 0)
|
||||||
{
|
{
|
||||||
ok = ssl_cipher_process_rulestr(SSL_DEFAULT_CIPHER_LIST,
|
ok = ssl_cipher_process_rulestr(SSL_DEFAULT_CIPHER_LIST,
|
||||||
co_list, &head, &tail, ca_list);
|
&head, &tail, ca_list);
|
||||||
rule_p += 7;
|
rule_p += 7;
|
||||||
if (*rule_p == ':')
|
if (*rule_p == ':')
|
||||||
rule_p++;
|
rule_p++;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ok && (strlen(rule_p) > 0))
|
if (ok && (strlen(rule_p) > 0))
|
||||||
ok = ssl_cipher_process_rulestr(rule_p, co_list, &head, &tail,
|
ok = ssl_cipher_process_rulestr(rule_p, &head, &tail, ca_list);
|
||||||
ca_list);
|
|
||||||
|
|
||||||
OPENSSL_free(ca_list); /* Not needed anymore */
|
OPENSSL_free(ca_list); /* Not needed anymore */
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user