From a309a5f38abd7c6d57f1e80a3aef81c3c3501f65 Mon Sep 17 00:00:00 2001 From: boydgreenfield Date: Mon, 5 May 2014 16:42:30 -0700 Subject: [PATCH] Update posix open() call to incl. permissions This explicitly grants user read/write access to newly-created mmap files. Previously, on some systems files would be created but could not be re-opened as the user lacked sufficient permissions. --- lib/pure/memfiles.nim | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/lib/pure/memfiles.nim b/lib/pure/memfiles.nim index 97220b90b3..31fefc6c82 100644 --- a/lib/pure/memfiles.nim +++ b/lib/pure/memfiles.nim @@ -178,8 +178,11 @@ proc open*(filename: string, mode: TFileMode = fmRead, if newFileSize != -1: flags = flags or O_CREAT or O_TRUNC + var permissions_mode = S_IRUSR or S_IWUSR + result.handle = open(filename, flags, permissions_mode) + else: + result.handle = open(filename, flags) - result.handle = open(filename, flags) if result.handle == -1: # XXX: errno is supposed to be set here # Is there an exception that wraps it?