summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authortb <>2023-05-14 17:20:26 +0000
committertb <>2023-05-14 17:20:26 +0000
commitaa9d3cda02275359ed09de1489478a13b7f096ec (patch)
tree69decc4ec9a4e726afbb964557dd3c37f7b10d76
parent3b637bbc558941c414e1d36ef5926415478d7884 (diff)
downloadopenbsd-aa9d3cda02275359ed09de1489478a13b7f096ec.tar.gz
openbsd-aa9d3cda02275359ed09de1489478a13b7f096ec.tar.bz2
openbsd-aa9d3cda02275359ed09de1489478a13b7f096ec.zip
Fix X509error() and X509V3error()
When v3err.c was merged into x509_err.c nearly three years ago, it was overlooked that the code needed two distinct pairs of ERR_FUNC/ERR_REASON, one for ERR_LIB_X509 and one for ERR_LIB_X509V3. The result is that the reason strings for the X509_R_* codes would be overwritten by the ones for X509V3_R_* with the same value while the reason strings for all X509V3_R_* would be left undefined. Fix this by an #undef/#define dance for ERR_LIB_X509V3 once we no longer the ERR_FUNC/ERR_REASON pair for ERR_LIB_X509. reported by job ok jsing
-rw-r--r--src/lib/libcrypto/x509/x509_err.c17
1 files changed, 11 insertions, 6 deletions
diff --git a/src/lib/libcrypto/x509/x509_err.c b/src/lib/libcrypto/x509/x509_err.c
index bcb04f1fd8..2cbd349350 100644
--- a/src/lib/libcrypto/x509/x509_err.c
+++ b/src/lib/libcrypto/x509/x509_err.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: x509_err.c,v 1.21 2023/04/24 08:39:06 job Exp $ */ 1/* $OpenBSD: x509_err.c,v 1.22 2023/05/14 17:20:26 tb Exp $ */
2/* ==================================================================== 2/* ====================================================================
3 * Copyright (c) 1999-2006 The OpenSSL Project. All rights reserved. 3 * Copyright (c) 1999-2006 The OpenSSL Project. All rights reserved.
4 * 4 *
@@ -71,11 +71,6 @@ static ERR_STRING_DATA X509_str_functs[] = {
71 {0, NULL} 71 {0, NULL}
72}; 72};
73 73
74static ERR_STRING_DATA X509V3_str_functs[] = {
75 {ERR_FUNC(0xfff), "CRYPTO_internal"},
76 {0, NULL}
77};
78
79static ERR_STRING_DATA X509_str_reasons[] = { 74static ERR_STRING_DATA X509_str_reasons[] = {
80 {ERR_REASON(X509_R_BAD_X509_FILETYPE) , "bad x509 filetype"}, 75 {ERR_REASON(X509_R_BAD_X509_FILETYPE) , "bad x509 filetype"},
81 {ERR_REASON(X509_R_BASE64_DECODE_ERROR) , "base64 decode error"}, 76 {ERR_REASON(X509_R_BASE64_DECODE_ERROR) , "base64 decode error"},
@@ -108,6 +103,16 @@ static ERR_STRING_DATA X509_str_reasons[] = {
108 {0, NULL} 103 {0, NULL}
109}; 104};
110 105
106#undef ERR_FUNC
107#undef ERR_REASON
108#define ERR_FUNC(func) ERR_PACK(ERR_LIB_X509V3,func,0)
109#define ERR_REASON(reason) ERR_PACK(ERR_LIB_X509V3,0,reason)
110
111static ERR_STRING_DATA X509V3_str_functs[] = {
112 {ERR_FUNC(0xfff), "CRYPTO_internal"},
113 {0, NULL}
114};
115
111static ERR_STRING_DATA X509V3_str_reasons[] = { 116static ERR_STRING_DATA X509V3_str_reasons[] = {
112 {ERR_REASON(X509V3_R_BAD_IP_ADDRESS) , "bad ip address"}, 117 {ERR_REASON(X509V3_R_BAD_IP_ADDRESS) , "bad ip address"},
113 {ERR_REASON(X509V3_R_BAD_OBJECT) , "bad object"}, 118 {ERR_REASON(X509V3_R_BAD_OBJECT) , "bad object"},