summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Configurations/descrip.mms.tmpl2
-rw-r--r--apps/lib/http_server.c2
-rw-r--r--crypto/asn1/a_time.c2
-rw-r--r--crypto/conf/conf_lib.c2
-rw-r--r--crypto/conf/conf_sap.c2
-rw-r--r--ssl/quic/json_enc.c16
-rw-r--r--test/json_test.c9
7 files changed, 30 insertions, 5 deletions
diff --git a/Configurations/descrip.mms.tmpl b/Configurations/descrip.mms.tmpl
index 94eb7e2810..db6a1b1799 100644
--- a/Configurations/descrip.mms.tmpl
+++ b/Configurations/descrip.mms.tmpl
@@ -239,7 +239,7 @@
# from these directories.
push @{$unified_info{includes_extra}->{$obj}}, qw(./quic);
}
- foreach (grep /\[\.ssl\.(?:quic|record|statem)\].*?\.o$/, keys %{$unified_info{sources}}) {
+ foreach (grep /\[\.ssl\.(?:quic|record|statem|rio)\].*?\.o$/, keys %{$unified_info{sources}}) {
my $obj = platform->obj($_);
# Most of the files in [.ssl.record] and [.ssl.statem] include
# "../ssl_local.h", which includes things like "record/record.h".
diff --git a/apps/lib/http_server.c b/apps/lib/http_server.c
index bca2e7110d..0bdeaeb5f7 100644
--- a/apps/lib/http_server.c
+++ b/apps/lib/http_server.c
@@ -200,7 +200,7 @@ BIO *http_server_init(const char *prog, const char *port, int verb)
int port_num;
char name[40];
- snprintf(name, sizeof(name), "*:%s", port); /* port may be "0" */
+ BIO_snprintf(name, sizeof(name), "*:%s", port); /* port may be "0" */
if (verb >= 0 && !log_set_verbosity(prog, verb))
return NULL;
bufbio = BIO_new(BIO_f_buffer());
diff --git a/crypto/asn1/a_time.c b/crypto/asn1/a_time.c
index 25d306a3a6..b4a0f9918a 100644
--- a/crypto/asn1/a_time.c
+++ b/crypto/asn1/a_time.c
@@ -14,6 +14,8 @@
* generalTime GeneralizedTime }
*/
+#define _XOPEN_SOURCE /* To get a definition of timezone */
+
#include <stdio.h>
#include <time.h>
#include "crypto/asn1.h"
diff --git a/crypto/conf/conf_lib.c b/crypto/conf/conf_lib.c
index 99e9f8c987..13e2723f80 100644
--- a/crypto/conf/conf_lib.c
+++ b/crypto/conf/conf_lib.c
@@ -7,6 +7,8 @@
* https://www.openssl.org/source/license.html
*/
+#define _XOPEN_SOURCE_EXTENDED /* To get a definition of strdup() */
+
#include "internal/e_os.h"
#include <stdio.h>
#include <string.h>
diff --git a/crypto/conf/conf_sap.c b/crypto/conf/conf_sap.c
index 3019bcf31a..9c78f46581 100644
--- a/crypto/conf/conf_sap.c
+++ b/crypto/conf/conf_sap.c
@@ -7,6 +7,8 @@
* https://www.openssl.org/source/license.html
*/
+#define _XOPEN_SOURCE_EXTENDED /* To get a definition of strdup() */
+
#include <stdio.h>
#include <openssl/crypto.h>
#include "internal/cryptlib.h"
diff --git a/ssl/quic/json_enc.c b/ssl/quic/json_enc.c
index 650247f869..990c67dc5f 100644
--- a/ssl/quic/json_enc.c
+++ b/ssl/quic/json_enc.c
@@ -9,6 +9,7 @@
#include "internal/json_enc.h"
#include "internal/nelem.h"
+#include "internal/numbers.h"
#include <string.h>
#include <math.h>
@@ -602,10 +603,19 @@ void ossl_json_f64(OSSL_JSON_ENC *json, double value)
if (!json_pre_item(json))
return;
- if (isnan(value) || isinf(value)) {
- json_raise_error(json);
- return;
+#if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
+ {
+ int checks = isnan(value);
+# if !defined(OPENSSL_SYS_VMS)
+ checks |= isinf(value);
+# endif
+
+ if (checks) {
+ json_raise_error(json);
+ return;
+ }
}
+#endif
BIO_snprintf(buf, sizeof(buf), "%1.17g", value);
json_write_str(json, buf);
diff --git a/test/json_test.c b/test/json_test.c
index db3038d766..7b46b4f15e 100644
--- a/test/json_test.c
+++ b/test/json_test.c
@@ -144,6 +144,15 @@ typedef void (*fp_pz_type)(OSSL_JSON_ENC *, const void *, size_t);
return &script_info; \
}
+#ifdef OPENSSL_SYS_VMS
+/*
+ * The VMS C compiler recognises \u in strings, and emits a warning, which
+ * stops the build. Because we think we know what we're doing, we change that
+ * particular message to be merely informational.
+ */
+# pragma message informational UCNNOMAP
+#endif
+
#define END_SCRIPT_EXPECTING_S(s) END_SCRIPT_EXPECTING(s, SIZE_MAX)
#define END_SCRIPT_EXPECTING_Q(s) END_SCRIPT_EXPECTING(#s, sizeof(#s) - 1)