Follow @Openwall on Twitter for new release announcements and other news
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date: Wed, 13 Jun 2012 17:18:07 +0400
From: Solar Designer <solar@...nwall.com>
To: musl@...ts.openwall.com
Subject: Re: FreeSec crypt()

On Wed, Jun 13, 2012 at 08:58:39AM -0400, Rich Felker wrote:
> On Wed, Jun 13, 2012 at 08:10:32AM +0200, Szabolcs Nagy wrote:
> > > 	while (q - (u_char *) keybuf < sizeof(keybuf)) {
> > > 		*q++ = *key << 1;
> > 
> > implementation-defined signed shift
> 
> Undefined. Right shifts are implementation-defined. Left-shifts are
> defined only for positive operands that don't overflow.

Right.  I'm going to fix that.

> Note that even if the behavior were defined, this code seems to have
> different behavior for high bytes depending on the signedness of char.

Do you mean high bits (not bytes)?  Why would signedness of char matter
if the behavior of the signed char overflowing left shift were defined?

Alexander

Powered by blists - more mailing lists

Confused about mailing lists and their use? Read about mailing lists on Wikipedia and check out these guidelines on proper formatting of your messages.