mirror of
https://github.com/reactos/reactos.git
synced 2024-06-26 07:51:52 +00:00
[WORDPAD] Use FILE_SHARE_READ and OPEN_ALWAYS for writing (#6883)
Follow-up to #6880. Fix access denial on writing file "C:\freeldr.ini". JIRA issue: CORE-19575 - Add FILE_SHARE_READ flag in CreateFileW call. - Use OPEN_ALWAYS instead of CREATE_ALWAYS, and then explicitly use SetEndOfFile function.
This commit is contained in:
parent
a64cccd711
commit
2b0d1faaa9
|
@ -843,8 +843,15 @@ static BOOL DoSaveFile(LPCWSTR wszSaveFileName, WPARAM format)
|
||||||
EDITSTREAM stream;
|
EDITSTREAM stream;
|
||||||
LRESULT ret;
|
LRESULT ret;
|
||||||
|
|
||||||
|
#ifdef __REACTOS__
|
||||||
|
/* Use OPEN_ALWAYS instead of CREATE_ALWAYS in order to succeed
|
||||||
|
* even if the file has HIDDEN or SYSTEM attributes */
|
||||||
|
hFile = CreateFileW(wszSaveFileName, GENERIC_WRITE, FILE_SHARE_READ, NULL, OPEN_ALWAYS,
|
||||||
|
FILE_ATTRIBUTE_NORMAL, NULL);
|
||||||
|
#else
|
||||||
hFile = CreateFileW(wszSaveFileName, GENERIC_WRITE, 0, NULL, CREATE_ALWAYS,
|
hFile = CreateFileW(wszSaveFileName, GENERIC_WRITE, 0, NULL, CREATE_ALWAYS,
|
||||||
FILE_ATTRIBUTE_NORMAL, NULL);
|
FILE_ATTRIBUTE_NORMAL, NULL);
|
||||||
|
#endif
|
||||||
|
|
||||||
if(hFile == INVALID_HANDLE_VALUE)
|
if(hFile == INVALID_HANDLE_VALUE)
|
||||||
{
|
{
|
||||||
|
@ -870,6 +877,10 @@ static BOOL DoSaveFile(LPCWSTR wszSaveFileName, WPARAM format)
|
||||||
|
|
||||||
ret = SendMessageW(hEditorWnd, EM_STREAMOUT, format, (LPARAM)&stream);
|
ret = SendMessageW(hEditorWnd, EM_STREAMOUT, format, (LPARAM)&stream);
|
||||||
|
|
||||||
|
#ifdef __REACTOS__
|
||||||
|
/* Truncate the file and close it */
|
||||||
|
SetEndOfFile(hFile);
|
||||||
|
#endif
|
||||||
CloseHandle(hFile);
|
CloseHandle(hFile);
|
||||||
|
|
||||||
SetFocus(hEditorWnd);
|
SetFocus(hEditorWnd);
|
||||||
|
|
Loading…
Reference in a new issue