summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPavel Moravec <pmoravec@apache.org>2014-01-16 14:19:39 +0000
committerPavel Moravec <pmoravec@apache.org>2014-01-16 14:19:39 +0000
commita062e40dc16091af5fd4f3f67b1d9844ec9ce684 (patch)
tree0d20542c2839145a4680c5842db34101558bb2d0
parent9f55006a1fdd704c7550613ff267b6ba50b8af0b (diff)
downloadqpid-python-a062e40dc16091af5fd4f3f67b1d9844ec9ce684.tar.gz
QPID-5486 Creating paged queue can overwrite existing qpidd files
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1558806 13f79535-47bb-0310-9956-ffa450edef68
-rw-r--r--qpid/cpp/src/qpid/sys/posix/MemoryMappedFile.cpp1
1 files changed, 1 insertions, 0 deletions
diff --git a/qpid/cpp/src/qpid/sys/posix/MemoryMappedFile.cpp b/qpid/cpp/src/qpid/sys/posix/MemoryMappedFile.cpp
index 477ace5451..9a406fe03f 100644
--- a/qpid/cpp/src/qpid/sys/posix/MemoryMappedFile.cpp
+++ b/qpid/cpp/src/qpid/sys/posix/MemoryMappedFile.cpp
@@ -65,6 +65,7 @@ std::string MemoryMappedFile::open(const std::string& name, const std::string& d
{
std::string path = getFileName(name, directory);
+ if (access(path.c_str(), F_OK) != -1) throw qpid::Exception(QPID_MSG("Attempting to re-write file " << path << " for paged queue \"" << name << "\""));
int flags = O_CREAT | O_TRUNC | O_RDWR;
int fd = ::open(path.c_str(), flags, S_IRUSR | S_IWUSR);
if (fd == -1) throw qpid::Exception(QPID_MSG("Failed to open memory mapped file " << path << ": " << qpid::sys::strError(errno) << " [flags=" << flags << "]"));