diff options
author | kinuko@chromium.org <kinuko@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-10-12 02:17:14 +0000 |
---|---|---|
committer | kinuko@chromium.org <kinuko@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-10-12 02:17:14 +0000 |
commit | 58c3a0962bb4dbd76bb556f036372f980467af71 (patch) | |
tree | aa22354d54ecbb53090a78f7aaf535339cae28ec /base/file_util_proxy.cc | |
parent | 8405da12256819349baf47280fcd495bb796a723 (diff) | |
download | chromium_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.cc | 5 |
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); |