Re: [openssl-project] travis builds failing with aligment errors?

2018-01-30 Thread Richard Levitte
In message  on Tue, 30 Jan 
2018 14:32:33 +, Matt Caswell  said:

matt> 
matt> 
matt> On 30/01/18 14:30, Matt Caswell wrote:
matt> > 
matt> > 
matt> > On 30/01/18 14:27, Benjamin Kaduk wrote:
matt> >> It seems that we've started getting issues with a single build
matt> >> configuration, e.g.,
matt> >> https://travis-ci.org/openssl/openssl/jobs/335110257
matt> >>
matt> >> Lots of complaints about alignment, like:
matt> >>
matt> >> crypto/modes/gcm128.c:1090:36: runtime error: load of misaligned
matt> >> address 0x02350ce5 for type 'const size_t' (aka 'const unsigned
matt> >> long'), which requires 8 byte alignment
matt> >> 0x02350ce5: note: pointer points here
matt> >>  68 1f ea 3b 14 00 00  0c 00 02 00 00 00 00 00  0c a3 35 89 7d a7 5e 
9e  87 fa d7 fd 8b c7 34 8a  8d
matt> >>  ^ 
matt> >> I didn't see anything particularly special about that configuration
matt> >> on a quick once-over; any ideas?
matt> > 
matt> > I raised an issue on this with some of my thoughts and investigation:
matt> > 
matt> > https://github.com/openssl/openssl/issues/5203
matt> > 
matt> > 
matt> > The error message about unsigned int requiring 8 byte alignment seems
matt> > suspicious to me. Shouldn't it be 4?
matt> 
matt> Oh...sorry just realised this is a slightly different but very similar
matt> error. In my issue it is complaining about an unsigned int requiring 8
matt> byte alignment. This issue is for an unsigned long.

So, err, ubsan isn't my forte, so I have to ask, shouldn't the
-fno-sanitize=alignment that's added in both cases have us avoid
this kind of message?  I.e. we know that we break alignment in some
cases, but that happens to be fine on those machines?

(for crypto/modes/gcm128.c, alignment should depend very much on |in|
and |out|, and if you look, you'll see that there are some checks if
STRICT_ALIGNMENT is defined, and you'll find in crypto/modes/modes_lcl.h
that it's undefined, so we obviously think we know what we're doing)

...

Hmmm, I think I know!  The configuration line is (if shortened to an
absolute minimum):

./config enable-ubsan -fno-sanitize-alignment

In 1.1.0 (and in master about a week ago), we got these flags among
the CFLAGS, in this order (actually, the last one is absolutely last):

-fsanitize=undefined -fno-sanitize-recover=all
-fno-omit-frame-pointer -fno-sanitize=alignment

In master now, we get this:

-fno-sanitize=alignment -fsanitize=undefined
-fno-sanitize-recover=all -fno-omit-frame-pointer

I just tried a fresh master and hacked reordered CFLAGS in Makefile to
-fno-sanitize=alignment last, and suddenly, the tests work.

So, err, I screwed up with the recent changes in Configure, in adding
the user added flags much too early to $config{cflags} and so on.

I'm on it, you should see a PR show up soon.

Cheers,
Richard

-- 
Richard Levitte levi...@openssl.org
OpenSSL Project http://www.openssl.org/~levitte/
___
openssl-project mailing list
openssl-project@openssl.org
https://mta.openssl.org/mailman/listinfo/openssl-project


Re: [openssl-project] travis builds failing with aligment errors?

2018-01-30 Thread Matt Caswell


On 30/01/18 14:30, Matt Caswell wrote:
> 
> 
> On 30/01/18 14:27, Benjamin Kaduk wrote:
>> It seems that we've started getting issues with a single build
>> configuration, e.g.,
>> https://travis-ci.org/openssl/openssl/jobs/335110257
>>
>> Lots of complaints about alignment, like:
>>
>> crypto/modes/gcm128.c:1090:36: runtime error: load of misaligned
>> address 0x02350ce5 for type 'const size_t' (aka 'const unsigned
>> long'), which requires 8 byte alignment
>> 0x02350ce5: note: pointer points here
>>  68 1f ea 3b 14 00 00  0c 00 02 00 00 00 00 00  0c a3 35 89 7d a7 5e 9e  87 
>> fa d7 fd 8b c7 34 8a  8d
>>  ^ 
>> I didn't see anything particularly special about that configuration
>> on a quick once-over; any ideas?
> 
> I raised an issue on this with some of my thoughts and investigation:
> 
> https://github.com/openssl/openssl/issues/5203
> 
> 
> The error message about unsigned int requiring 8 byte alignment seems
> suspicious to me. Shouldn't it be 4?

Oh...sorry just realised this is a slightly different but very similar
error. In my issue it is complaining about an unsigned int requiring 8
byte alignment. This issue is for an unsigned long.

Matt

___
openssl-project mailing list
openssl-project@openssl.org
https://mta.openssl.org/mailman/listinfo/openssl-project