From 3eb151ebeaf7cc9c03e4b41ad50711f6e3e8c94c Mon Sep 17 00:00:00 2001 From: "mikhail.naganov@gmail.com" Date: Mon, 21 Feb 2011 17:17:26 +0000 Subject: [PATCH] Bug: OS::MemoryMappedFile::open() should not truncate a pre-existing file. Patch by Mark Lam from Hewlett-Packard Development Company, LP Review URL: http://codereview.chromium.org/6543039 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6872 ce2b1a6d-e550-0410-aec6-3dcde31c8c00 --- src/platform-cygwin.cc | 2 +- src/platform-freebsd.cc | 2 +- src/platform-linux.cc | 2 +- src/platform-macos.cc | 2 +- src/platform-openbsd.cc | 2 +- src/platform-solaris.cc | 2 +- src/platform-win32.cc | 2 +- 7 files changed, 7 insertions(+), 7 deletions(-) diff --git a/src/platform-cygwin.cc b/src/platform-cygwin.cc index 62372ce..a7cc525 100644 --- a/src/platform-cygwin.cc +++ b/src/platform-cygwin.cc @@ -209,7 +209,7 @@ class PosixMemoryMappedFile : public OS::MemoryMappedFile { OS::MemoryMappedFile* OS::MemoryMappedFile::open(const char* name) { - FILE* file = fopen(name, "w+"); + FILE* file = fopen(name, "r+"); if (file == NULL) return NULL; fseek(file, 0, SEEK_END); diff --git a/src/platform-freebsd.cc b/src/platform-freebsd.cc index c18049f..21763b5 100644 --- a/src/platform-freebsd.cc +++ b/src/platform-freebsd.cc @@ -224,7 +224,7 @@ class PosixMemoryMappedFile : public OS::MemoryMappedFile { OS::MemoryMappedFile* OS::MemoryMappedFile::open(const char* name) { - FILE* file = fopen(name, "w+"); + FILE* file = fopen(name, "r+"); if (file == NULL) return NULL; fseek(file, 0, SEEK_END); diff --git a/src/platform-linux.cc b/src/platform-linux.cc index 761ff7e..733956a 100644 --- a/src/platform-linux.cc +++ b/src/platform-linux.cc @@ -327,7 +327,7 @@ class PosixMemoryMappedFile : public OS::MemoryMappedFile { OS::MemoryMappedFile* OS::MemoryMappedFile::open(const char* name) { - FILE* file = fopen(name, "w+"); + FILE* file = fopen(name, "r+"); if (file == NULL) return NULL; fseek(file, 0, SEEK_END); diff --git a/src/platform-macos.cc b/src/platform-macos.cc index ea35c1b..35724c3 100644 --- a/src/platform-macos.cc +++ b/src/platform-macos.cc @@ -205,7 +205,7 @@ class PosixMemoryMappedFile : public OS::MemoryMappedFile { OS::MemoryMappedFile* OS::MemoryMappedFile::open(const char* name) { - FILE* file = fopen(name, "w+"); + FILE* file = fopen(name, "r+"); if (file == NULL) return NULL; fseek(file, 0, SEEK_END); diff --git a/src/platform-openbsd.cc b/src/platform-openbsd.cc index 0002dd7..e279629 100644 --- a/src/platform-openbsd.cc +++ b/src/platform-openbsd.cc @@ -222,7 +222,7 @@ class PosixMemoryMappedFile : public OS::MemoryMappedFile { OS::MemoryMappedFile* OS::MemoryMappedFile::open(const char* name) { - FILE* file = fopen(name, "w+"); + FILE* file = fopen(name, "r+"); if (file == NULL) return NULL; fseek(file, 0, SEEK_END); diff --git a/src/platform-solaris.cc b/src/platform-solaris.cc index 556e26b..ebe0475 100644 --- a/src/platform-solaris.cc +++ b/src/platform-solaris.cc @@ -235,7 +235,7 @@ class PosixMemoryMappedFile : public OS::MemoryMappedFile { OS::MemoryMappedFile* OS::MemoryMappedFile::open(const char* name) { - FILE* file = fopen(name, "w+"); + FILE* file = fopen(name, "r+"); if (file == NULL) return NULL; fseek(file, 0, SEEK_END); diff --git a/src/platform-win32.cc b/src/platform-win32.cc index b5a85f6..f24994b 100644 --- a/src/platform-win32.cc +++ b/src/platform-win32.cc @@ -939,7 +939,7 @@ OS::MemoryMappedFile* OS::MemoryMappedFile::open(const char* name) { // Open a physical file HANDLE file = CreateFileA(name, GENERIC_READ | GENERIC_WRITE, FILE_SHARE_READ | FILE_SHARE_WRITE, NULL, OPEN_EXISTING, 0, NULL); - if (file == NULL) return NULL; + if (file == INVALID_HANDLE_VALUE) return NULL; int size = static_cast(GetFileSize(file, NULL)); -- 2.7.4