mirror of
https://github.com/winfsp/winfsp.git
synced 2025-06-08 04:52:10 -05:00
Merge pull request #272 from pfrejo/hotfix-1.5
Fixed data corruption when overwriting a file on a Fuse v3 filesystem
This commit is contained in:
commit
e608920679
@ -64,6 +64,7 @@ CONTRIBUTOR LIST
|
|||||||
|Gal Hammer (Red Hat, https://www.redhat.com) |ghammer at redhat.com
|
|Gal Hammer (Red Hat, https://www.redhat.com) |ghammer at redhat.com
|
||||||
|John Oberschelp |john at oberschelp.net
|
|John Oberschelp |john at oberschelp.net
|
||||||
|John Tyner |jtyner at gmail.com
|
|John Tyner |jtyner at gmail.com
|
||||||
|
|Pedro Frejo (Arpa System, https://arpasystem.com) |pedro.frejo at arpasystem.com
|
||||||
|Sam Kelly (DuroSoft Technologies LLC, https://durosoft.com) |sam at durosoft.com
|
|Sam Kelly (DuroSoft Technologies LLC, https://durosoft.com) |sam at durosoft.com
|
||||||
|Santiago Ganis |sganis at gmail.com
|
|Santiago Ganis |sganis at gmail.com
|
||||||
|Tobias Urlaub |saibotu at outlook.de
|
|Tobias Urlaub |saibotu at outlook.de
|
||||||
|
@ -1030,14 +1030,12 @@ static NTSTATUS fsp_fuse_intf_Open(FSP_FILE_SYSTEM *FileSystem,
|
|||||||
* Some Windows applications (notably Go programs) specify FILE_APPEND_DATA without
|
* Some Windows applications (notably Go programs) specify FILE_APPEND_DATA without
|
||||||
* FILE_WRITE_DATA when opening files for appending. This caused the WinFsp-FUSE layer
|
* FILE_WRITE_DATA when opening files for appending. This caused the WinFsp-FUSE layer
|
||||||
* to erroneously pass O_RDONLY to the FUSE file system in such cases. We add a test
|
* to erroneously pass O_RDONLY to the FUSE file system in such cases. We add a test
|
||||||
* for FILE_APPEND_DATA to ensure that either O_WRONLY or O_RDWR is specified and that
|
* for FILE_APPEND_DATA to ensure that either O_WRONLY or O_RDWR is specified.
|
||||||
* the O_APPEND flag is set.
|
|
||||||
*/
|
*/
|
||||||
if (GrantedAccess & FILE_APPEND_DATA)
|
if (GrantedAccess & FILE_APPEND_DATA)
|
||||||
{
|
{
|
||||||
if (fi.flags == 0)
|
if (fi.flags == 0)
|
||||||
fi.flags = 1; /* need O_WRONLY as a bare minimum in order to append */
|
fi.flags = 1; /* need O_WRONLY as a bare minimum in order to append */
|
||||||
fi.flags |= 8/*O_APPEND*/;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (0 != f->ops.open)
|
if (0 != f->ops.open)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user