diff options
author | wolfbeast <mcwerewolf@gmail.com> | 2018-07-02 17:51:09 +0200 |
---|---|---|
committer | wolfbeast <mcwerewolf@gmail.com> | 2018-07-02 17:51:09 +0200 |
commit | 4c9914227ed9e675d65ad16e0bb899e8107a0ee5 (patch) | |
tree | d4c542f51b5155eb3f3627c628686cfc0d648a2f /xpcom/io/nsLocalFileWin.cpp | |
parent | de01f1e7fce43d5919e6adcd73dfa617a9087520 (diff) | |
parent | aa6329b694a981dccd5b0fd124936c4b54fb94a4 (diff) | |
download | UXP-4c9914227ed9e675d65ad16e0bb899e8107a0ee5.tar UXP-4c9914227ed9e675d65ad16e0bb899e8107a0ee5.tar.gz UXP-4c9914227ed9e675d65ad16e0bb899e8107a0ee5.tar.lz UXP-4c9914227ed9e675d65ad16e0bb899e8107a0ee5.tar.xz UXP-4c9914227ed9e675d65ad16e0bb899e8107a0ee5.zip |
Merge branch 'ported-upstream'
Diffstat (limited to 'xpcom/io/nsLocalFileWin.cpp')
-rw-r--r-- | xpcom/io/nsLocalFileWin.cpp | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/xpcom/io/nsLocalFileWin.cpp b/xpcom/io/nsLocalFileWin.cpp index 66e267807..e73e15950 100644 --- a/xpcom/io/nsLocalFileWin.cpp +++ b/xpcom/io/nsLocalFileWin.cpp @@ -45,6 +45,7 @@ #include "prproces.h" #include "prlink.h" +#include "mozilla/FilePreferences.h" #include "mozilla/Mutex.h" #include "SpecialSystemDirectory.h" @@ -1166,6 +1167,10 @@ nsLocalFile::InitWithPath(const nsAString& aFilePath) return NS_ERROR_FILE_UNRECOGNIZED_PATH; } + if (FilePreferences::IsBlockedUNCPath(aFilePath)) { + return NS_ERROR_FILE_ACCESS_DENIED; + } + if (secondChar != L':' && (secondChar != L'\\' || firstChar != L'\\')) { return NS_ERROR_FILE_UNRECOGNIZED_PATH; } @@ -1976,6 +1981,10 @@ nsLocalFile::CopySingleFile(nsIFile* aSourceFile, nsIFile* aDestParent, dwCopyFlags |= COPY_FILE_NO_BUFFERING; } + if (FilePreferences::IsBlockedUNCPath(destPath)) { + return NS_ERROR_FILE_ACCESS_DENIED; + } + if (!move) { copyOK = ::CopyFileExW(filePath.get(), destPath.get(), nullptr, nullptr, nullptr, dwCopyFlags); @@ -3062,6 +3071,7 @@ nsLocalFile::IsExecutable(bool* aResult) "scf", // Windows explorer command "scr", "sct", + "settingcontent-ms", "shb", "shs", "url", |