Index: native_client_sdk/src/libraries/nacl_io/kernel_handle.cc |
diff --git a/native_client_sdk/src/libraries/nacl_io/kernel_handle.cc b/native_client_sdk/src/libraries/nacl_io/kernel_handle.cc |
index f7bf16313f554758a19ebbbdf70a48132edc3707..4f88bbf8c6de542164875651c7204cc97ac75a90 100644 |
--- a/native_client_sdk/src/libraries/nacl_io/kernel_handle.cc |
+++ b/native_client_sdk/src/libraries/nacl_io/kernel_handle.cc |
@@ -44,6 +44,11 @@ Error KernelHandle::Init(int open_flags) { |
return EACCES; |
} |
+ // Directories can only be opened read-only. |
+ if ((open_flags & 3) != O_RDONLY && node_->IsaDir()) { |
+ return EISDIR; |
+ } |
+ |
if (open_flags & O_APPEND) { |
Error error = node_->GetSize(&handle_attr_.offs); |
if (error) |