From 33254e1c6fa6a1acf28fd0d9b6dc4ee30e569b95 Mon Sep 17 00:00:00 2001 From: Richard Levitte Date: Sat, 30 Jan 2016 15:39:34 +0100 Subject: Fix opt_imax() call Not all architectures have a time_t defined the same way. To make sure we get the same result, we need to cast &checkoffset to (intmax_t *) and make sure that intmax_t is defined somehow. To make really sure we don't pass a variable with the wrong size down to opt_imax(), we use a temporary intmax_t. Reviewed-by: Rich Salz --- apps/x509.c | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) (limited to 'apps/x509.c') diff --git a/apps/x509.c b/apps/x509.c index a8d0686a6b..5d6bb9679a 100644 --- a/apps/x509.c +++ b/apps/x509.c @@ -468,12 +468,16 @@ int x509_main(int argc, char **argv) break; case OPT_CHECKEND: checkend = 1; - if (!opt_imax(opt_arg(), &checkoffset)) - goto opthelp; - if (checkoffset != (time_t)checkoffset) { - BIO_printf(bio_err, "%s: checkend time out of range %s\n", - prog, opt_arg()); - goto opthelp; + { + intmax_t temp = 0; + if (!opt_imax(opt_arg(), &temp)) + goto opthelp; + checkoffset = (time_t)temp; + if ((intmax_t)checkoffset != temp) { + BIO_printf(bio_err, "%s: checkend time out of range %s\n", + prog, opt_arg()); + goto opthelp; + } } break; case OPT_CHECKHOST: -- cgit v1.2.3