On Sun, Oct 02, 2016 at 08:50:39AM -0500, Brent Cook wrote: > On Sat, Oct 1, 2016 at 7:12 PM, Ted Unangst <t...@tedunangst.com> wrote: > > > Kinichiro Inoguchi wrote: > > > I would like to cast the return variable explicitly in tls_load_file(). > > > This fix also avoiding Intel C++ compiler "assertion failed" described > > here. > > > https://github.com/libressl-portable/portable/issues/209# > > issuecomment-249587024 > > > > This is a compiler bug? The code doesn't change, and there's no bug in the > > library that I see. > > > > If the compiler is implying that the code is incorrect, it has a funny way > of saying it. This looks not-dissimilar to a gcc ICE: > > > 1>C:\libressl-2.5.0\tls\tls_util.c(157): error : assertion failed: > construct_message: not all fill-ins used (shared/cfe/edgcpfe/error.c, line > 3586) > 1> > > Why not just make the variable type match the return type to begin with? > > --- a/src/lib/libtls/tls_util.c > +++ b/src/lib/libtls/tls_util.c > @@ -105,7 +105,8 @@ tls_load_file(const char *name, size_t *len, char > *password) > FILE *fp; > EVP_PKEY *key = NULL; > BIO *bio = NULL; > - char *data, *buf = NULL; > + char *data; > + uint8_t *buf = NULL; > struct stat st; > size_t size; > int fd = -1;
Here's an un-gmail-munged diff: diff --git a/src/lib/libtls/tls_util.c b/src/lib/libtls/tls_util.c index b3035c9..1b8c28a 100644 --- a/src/lib/libtls/tls_util.c +++ b/src/lib/libtls/tls_util.c @@ -105,7 +105,8 @@ tls_load_file(const char *name, size_t *len, char *password) FILE *fp; EVP_PKEY *key = NULL; BIO *bio = NULL; - char *data, *buf = NULL; + char *data; + uint8_t *buf = NULL; struct stat st; size_t size; int fd = -1;