[PATCH] Fix incorrect sign-extension of pointer in 32-bit acl __to_entry
David Allsopp
David.Allsopp@cl.cam.ac.uk
Fri Jul 10 15:22:14 GMT 2020
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!
Would it be possible to have a snapshot with it, just for continuous integration servers which need the fix, please?
David
More information about the Cygwin-patches
mailing list