[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#33287: [PATCH] sync: add missing brackets in sync_arg()
From: |
Kamil Dudka |
Subject: |
bug#33287: [PATCH] sync: add missing brackets in sync_arg() |
Date: |
Wed, 07 Nov 2018 09:24:38 +0100 |
On Wednesday, November 7, 2018 12:33:45 AM CET Bernhard Voelker wrote:
> On 11/6/18 7:35 PM, Paul Eggert wrote:
> > Thanks, I installed that and am closing the bug report.
>
> That was a real bug, i.e., not only a resource leak, wasn't it?
>
> If the calling user has -r+w permissions on the file, then sync previously
> exited with 1 without actually syncing:
>
> $ install -m 0200 /dev/null /tmp/file
>
> $ ls -log /tmp/file
> --w------- 1 0 Nov 7 00:06 /tmp/file
>
> $ strace -v /usr/bin/sync /tmp/file 2>&1 | tail -n6
> openat(AT_FDCWD, "/tmp/file", O_RDONLY|O_NONBLOCK) = -1 EACCES (Permission
> denied) openat(AT_FDCWD, "/tmp/file", O_WRONLY|O_NONBLOCK) = 3
> close(1) = 0
> close(2) = 0
> exit_group(1) = ?
> +++ exited with 1 +++
>
> With the patch, fsync is called, and sync terminated with success:
>
> $ strace -v src/sync /tmp/file 2>&1 | tail
> openat(AT_FDCWD, "/tmp/file", O_RDONLY|O_NONBLOCK) = -1 EACCES (Permission
> denied) openat(AT_FDCWD, "/tmp/file", O_WRONLY|O_NONBLOCK) = 3
> fcntl(3, F_GETFL) = 0x8801 (flags
> O_WRONLY|O_NONBLOCK|O_LARGEFILE) fcntl(3, F_SETFL, O_WRONLY|O_LARGEFILE) =
> 0
> fsync(3) = 0
> close(3) = 0
> close(1) = 0
> close(2) = 0
> exit_group(0) = ?
> +++ exited with 0 +++
>
> Should we add a NEWS entry and a test - see attached?
Looks good. Thanks for the follow-up patch!
Kamil
> Thanks & have a nice day,
> Berny