GNU bug report logs -
#77640
[platform-testers] new snapshot available: gzip-1.13.56-e549
Previous Next
Full log
View this message in rfc822 format
On 2025-04-08 11:43, Nelson H. F. Beebe wrote:
> Here is the requested test on DragonFlyBSD for gzip-1.13.56-e549:
>
> % cat foo.sh
> #! /bin/sh
> mkdir d
> echo >d/f
> chmod a-w d
> ./gzip d/f
>
> % ./foo.sh
> gzip: d/f.gz already exists; do you wish to overwrite (y or n)? y
> gzip: d/f.gz: No such file or directory
>
> I then applied the one-line patch to tests/write-error:
>
> % diff ./write-error.org ./write-error
> 27c27,28
> < if test -w d || test `id -u` = 0; then
> ---
>> # if test -w d || test `id -u` = 0; then
>> if echo > d/e; then
>
> % cd ..
> % make check
> ... PASS reports ...
> PASS: unpack-invalid
> PASS: unpack-valid
> PASS: upper-suffix
> [hangs at this point]
>
> If I run the script in the tests directory, I get
>
> % ./write-error
> ./write-error: cannot create d/e: Permission denied
> [again at this point]
Thanks for the further checking on DragonFlyBSD. My guess about the
syscall bug was incorrect, unfortunately.
I suspect that openat with O_WRONLY|O_CREAT|O_EXCL isn't working
correctly if the directory fd points to an unwriteable directory opened
via O_SEARCH|O_DIRECTORY, and that openat misbehaves by failing with
errno==EEXIST. If my guess is right, I don't see an easy way for gzip to
work around the kernel bug.
This bug report was last modified 64 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.