[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH for-2.7] wxx: Truncate files used for character devi
From: |
Stefan Weil |
Subject: |
[Qemu-devel] [PATCH for-2.7] wxx: Truncate files used for character devices |
Date: |
Tue, 26 Jul 2016 19:11:09 +0200 |
On Windows, such files were not truncated like on all other hosts.
Now we also test whether truncation is needed when running on Windows.
Reported-by: Benjamin David Lunt <address@hidden>
Signed-off-by: Stefan Weil <address@hidden>
---
qemu-char.c | 11 ++++++++++-
1 file changed, 10 insertions(+), 1 deletion(-)
diff --git a/qemu-char.c b/qemu-char.c
index e4b8448..7de63c8 100644
--- a/qemu-char.c
+++ b/qemu-char.c
@@ -4197,14 +4197,23 @@ static CharDriverState *qmp_chardev_open_file(const
char *id,
ChardevFile *file = backend->u.file.data;
ChardevCommon *common = qapi_ChardevFile_base(file);
HANDLE out;
+ DWORD flags;
if (file->has_in) {
error_setg(errp, "input file not supported");
return NULL;
}
+ if (file->has_append && file->append) {
+ /* Append to file if it already exists. */
+ flags = OPEN_ALWAYS;
+ } else {
+ /* Truncate file if it already exists. */
+ flags = CREATE_ALWAYS;
+ }
+
out = CreateFile(file->out, GENERIC_WRITE, FILE_SHARE_READ, NULL,
- OPEN_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);
+ flags, FILE_ATTRIBUTE_NORMAL, NULL);
if (out == INVALID_HANDLE_VALUE) {
error_setg(errp, "open %s failed", file->out);
return NULL;
--
2.1.4
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Qemu-devel] [PATCH for-2.7] wxx: Truncate files used for character devices,
Stefan Weil <=