diff options
Diffstat (limited to 'zen/FindFilePlus/find_file_plus.cpp')
-rw-r--r-- | zen/FindFilePlus/find_file_plus.cpp | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/zen/FindFilePlus/find_file_plus.cpp b/zen/FindFilePlus/find_file_plus.cpp index 9b146008..5fc1a538 100644 --- a/zen/FindFilePlus/find_file_plus.cpp +++ b/zen/FindFilePlus/find_file_plus.cpp @@ -1,7 +1,7 @@ // ************************************************************************** // * This file is part of the FreeFileSync project. It is distributed under * // * GNU General Public License: http://www.gnu.org/licenses/gpl.html * -// * Copyright (C) ZenJu (zenju AT gmx DOT de) - All Rights Reserved * +// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved * // ************************************************************************** #include "find_file_plus.h" @@ -9,8 +9,8 @@ //#include <windows.h> //these two don't play nice with each other #include "load_dll.h" #include <zen/scope_guard.h> - -#include <cstdio> +#include <new> +//#include <cstdio> using namespace dll; using namespace findplus; @@ -357,13 +357,18 @@ FindHandle findplus::openDir(const wchar_t* dirname) { try { - return new FileSearcher(dirname); //throw NtFileError + return new FileSearcher(dirname); //throw NtFileError, std::bad_alloc } catch (const NtFileError& e) { setWin32Error(rtlNtStatusToDosError(e.ntError)); return nullptr; } + catch (const std::bad_alloc&) //not unlikely in this context! => handle! + { + setWin32Error(rtlNtStatusToDosError(STATUS_NO_MEMORY)); + return nullptr; + } } |