summaryrefslogtreecommitdiffstats
path: root/base/file_util_proxy.cc
diff options
context:
space:
mode:
authorkinuko@chromium.org <kinuko@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-10-12 02:17:14 +0000
committerkinuko@chromium.org <kinuko@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-10-12 02:17:14 +0000
commit58c3a0962bb4dbd76bb556f036372f980467af71 (patch)
treeaa22354d54ecbb53090a78f7aaf535339cae28ec /base/file_util_proxy.cc
parent8405da12256819349baf47280fcd495bb796a723 (diff)
downloadchromium_src-58c3a0962bb4dbd76bb556f036372f980467af71.zip
chromium_src-58c3a0962bb4dbd76bb556f036372f980467af71.tar.gz
chromium_src-58c3a0962bb4dbd76bb556f036372f980467af71.tar.bz2
Return NOT_FOUND error for an attempt to create a file under nonexistent directory.
BUG=none TEST=fast/filesystem/op-get-entry.html Review URL: http://codereview.chromium.org/3729001 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@62229 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'base/file_util_proxy.cc')
-rw-r--r--base/file_util_proxy.cc5
1 files changed, 5 insertions, 0 deletions
diff --git a/base/file_util_proxy.cc b/base/file_util_proxy.cc
index 9cfff63..ab7903e 100644
--- a/base/file_util_proxy.cc
+++ b/base/file_util_proxy.cc
@@ -138,6 +138,11 @@ class RelayCreateOrOpen : public MessageLoopRelay {
}
virtual void RunWork() {
+ if (!file_util::DirectoryExists(file_path_.DirName())) {
+ // If its parent does not exist, should return NOT_FOUND error.
+ set_error_code(base::PLATFORM_FILE_ERROR_NOT_FOUND);
+ return;
+ }
base::PlatformFileError error_code = base::PLATFORM_FILE_OK;
file_handle_ = base::CreatePlatformFile(file_path_, file_flags_,
&created_, &error_code);