On 2019-06-26, Richard Ipsum <[email protected]> wrote: > On Tue, Jun 25, 2019 at 04:55:10PM -0700, Michael Forney wrote: >> I think the error is coming from >> https://github.com/openbsd/src/blob/f84583fe5d7899ab1504dc1d58a04742db4a3058/lib/libc/gen/getgrent.c#L217. >> If I run `touch /var/run/ypbind.lock` in my OpenBSD VM, it fixes the >> issue. > > I see, so to preserve the existing behaviour you'd want to save errno > before calling access, then restore afterward.
Yes, I think that would work. >> I think this is unintended, since there appears to be some logic to >> save and restore errno in grscan(). Looks like it was introduced in >> https://github.com/openbsd/src/commit/b971f1acd7c34a49359ccefbe512e06f3826a939 >> (first released in OpenBSD 5.9). > > Right, exactly. I think the reason this doesn't break OpenBSD chown is > because it uses `gid_from_group` and the implementation[1] for that > actually ignores errno, if it didn't they might have spotted this issue > themselves. > > Do you want to raise this with upstream or shall I? If you don't mind, I'd appreciate it if you did. > Yes I can see why you would rather not ignore errno to be fair. > Maybe the better option is to see if the fix can be made in OpenBSD > and then I could rework these patches? Yes, that sounds like a good plan. Thanks!
