Svante Signell, le Mon 12 Oct 2015 14:45:09 +0200, a écrit :
> On Mon, 2015-10-12 at 02:08 +0200, Samuel Thibault wrote:
> > The commit I have just pushed, which does make sense, does fix gpsd at
> > least.
> 
> Building gpsd (3.15-1) with your patch applied:
> cp /home/srs/DEBs/gpsd/gpsd-3.15/gpsd.rules 
> /home/srs/DEBs/gpsd/gpsd-3.15/debian/gpsd.udev
> cp: cannot create regular file
> ‘/home/srs/DEBs/gpsd/gpsd-3.15/debian/gpsd.udev’: Permission denied

Please erase your build tree and restart the build from scratch. You
probably have a remaining non-writable gpsd.udev file.

> Since the packages I've built builds fine using the condition below:
> if (file != MACH_PORT_NULL && (nn->openmodes & newmodes))
> please explain what is wrong with it and why it works while your does
> not?

I have explained at length how the function is supposed to behave in
my previous mail.  Your proposed change does not meet what I said.
Notably, in the nn->openmodes = O_READ and newmodes = O_WRITE case,
it'll be wrong: nn->openmodes & newmodes will be zero, and thus the
'file' port will be used as such, but it will not have O_WRITE mode!
Subsequent writes to the file will then fail (and if they don't, that's
another bug to be fixed).

Samuel

Reply via email to