[PATCH] Fix incorrect sign-extension of pointer in 32-bit acl __to_entry

Corinna Vinschen corinna-cygwin@cygwin.com
Fri Jul 10 15:58:58 GMT 2020


On Jul 10 15:22, David Allsopp via Cygwin-patches wrote:
> Corinna Vinschen wrote:
> > On Jul  9 20:30, David Allsopp via Cygwin-patches wrote:
> > > I have some code where the acl_t returned by get_file_acl is allocated
> > > at 0x80038248. As a result the acl_entry_t generated by acl_get_entry
> > > has an "index" of -1, since the pointer was sign-extended to 64-bits.
> > >
> > > My fix is trivial and simply casts the pointer to uintptr_t first.
> > 
> > Pushed.  I still don't quite understand what the compiler is thinking
> > there, sign-extending a pointer when casted to an unsigend int type, but
> > your patch works, so all is well, I guess.
> 
> Thank you - it is indeed hard to imagine when you'd ever want that behaviour!

I wonder if this is a bug in x86 gcc... Jon?

> Would it be possible to have a snapshot with it, just for continuous
> integration servers which need the fix, please?

Sure, done.


Corinna

-- 
Corinna Vinschen
Cygwin Maintainer


More information about the Cygwin-patches mailing list