diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/lib/libcrypto/asn1/a_int.c | 25 |
1 files changed, 9 insertions, 16 deletions
diff --git a/src/lib/libcrypto/asn1/a_int.c b/src/lib/libcrypto/asn1/a_int.c index aa4421c0e0..6ad0df3d1e 100644 --- a/src/lib/libcrypto/asn1/a_int.c +++ b/src/lib/libcrypto/asn1/a_int.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: a_int.c,v 1.39 2022/04/27 17:42:08 jsing Exp $ */ | 1 | /* $OpenBSD: a_int.c,v 1.40 2022/06/25 14:22:54 jsing Exp $ */ |
2 | /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) | 2 | /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) |
3 | * All rights reserved. | 3 | * All rights reserved. |
4 | * | 4 | * |
@@ -102,25 +102,18 @@ ASN1_INTEGER_dup(const ASN1_INTEGER *x) | |||
102 | } | 102 | } |
103 | 103 | ||
104 | int | 104 | int |
105 | ASN1_INTEGER_cmp(const ASN1_INTEGER *x, const ASN1_INTEGER *y) | 105 | ASN1_INTEGER_cmp(const ASN1_INTEGER *a, const ASN1_INTEGER *b) |
106 | { | 106 | { |
107 | int neg, ret; | 107 | int ret = 1; |
108 | 108 | ||
109 | /* Compare signs */ | 109 | /* Compare sign, then content. */ |
110 | neg = x->type & V_ASN1_NEG; | 110 | if ((a->type & V_ASN1_NEG) == (b->type & V_ASN1_NEG)) |
111 | if (neg != (y->type & V_ASN1_NEG)) { | 111 | ret = ASN1_STRING_cmp(a, b); |
112 | if (neg) | ||
113 | return -1; | ||
114 | else | ||
115 | return 1; | ||
116 | } | ||
117 | 112 | ||
118 | ret = ASN1_STRING_cmp(x, y); | 113 | if ((a->type & V_ASN1_NEG) != 0) |
119 | |||
120 | if (neg) | ||
121 | return -ret; | 114 | return -ret; |
122 | else | 115 | |
123 | return ret; | 116 | return ret; |
124 | } | 117 | } |
125 | 118 | ||
126 | int | 119 | int |