summaryrefslogtreecommitdiff
path: root/shared/privilege.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'shared/privilege.cpp')
-rw-r--r--shared/privilege.cpp48
1 files changed, 26 insertions, 22 deletions
diff --git a/shared/privilege.cpp b/shared/privilege.cpp
index 16f9d385..00eb2855 100644
--- a/shared/privilege.cpp
+++ b/shared/privilege.cpp
@@ -1,7 +1,8 @@
#include "privilege.h"
#include <wx/intl.h>
#include "system_func.h"
-#include <boost/shared_ptr.hpp>
+//#include <boost/shared_ptr.hpp>
+#include "loki/ScopeGuard.h"
using namespace ffs3;
@@ -23,19 +24,21 @@ bool Privileges::privilegeIsActive(LPCTSTR privilege) //throw FileError()
const wxString errorMessage = wxString(_("Error setting privilege:")) + wxT(" \"") + privilege + wxT("\"") + wxT("\n\n");
throw FileError(errorMessage + ffs3::getLastErrorFormatted());
}
- boost::shared_ptr<void> dummy(hToken, ::CloseHandle);
+ Loki::ScopeGuard dummy = Loki::MakeGuard(::CloseHandle, hToken);
+ (void)dummy; //silence warning "unused variable"
- LUID luid = {0};
+
+ LUID luid = {};
if (!::LookupPrivilegeValue(
- NULL, //__in_opt LPCTSTR lpSystemName,
- privilege, //__in LPCTSTR lpName,
- &luid )) //__out PLUID lpLuid
+ NULL, //__in_opt LPCTSTR lpSystemName,
+ privilege, //__in LPCTSTR lpName,
+ &luid )) //__out PLUID lpLuid
{
const wxString errorMessage = wxString(_("Error setting privilege:")) + wxT(" \"") + privilege + wxT("\"") + wxT("\n\n");
throw FileError(errorMessage + ffs3::getLastErrorFormatted());
}
- PRIVILEGE_SET priv = {0};
+ PRIVILEGE_SET priv = {};
priv.PrivilegeCount = 1;
priv.Control = PRIVILEGE_SET_ALL_NECESSARY;
priv.Privilege[0].Luid = luid;
@@ -43,9 +46,9 @@ bool Privileges::privilegeIsActive(LPCTSTR privilege) //throw FileError()
BOOL alreadyGranted = FALSE;
if (!::PrivilegeCheck(
- hToken, //__in HANDLE ClientToken,
- &priv, //__inout PPRIVILEGE_SET RequiredPrivileges,
- &alreadyGranted)) //__out LPBOOL pfResult
+ hToken, //__in HANDLE ClientToken,
+ &priv, //__inout PPRIVILEGE_SET RequiredPrivileges,
+ &alreadyGranted)) //__out LPBOOL pfResult
{
const wxString errorMessage = wxString(_("Error setting privilege:")) + wxT(" \"") + privilege + wxT("\"") + wxT("\n\n");
throw FileError(errorMessage + ffs3::getLastErrorFormatted());
@@ -65,30 +68,31 @@ void Privileges::setPrivilege(LPCTSTR privilege, bool enable) //throw FileError(
const wxString errorMessage = wxString(_("Error setting privilege:")) + wxT(" \"") + privilege + wxT("\"") + wxT("\n\n");
throw FileError(errorMessage + ffs3::getLastErrorFormatted());
}
- boost::shared_ptr<void> dummy(hToken, ::CloseHandle);
+ Loki::ScopeGuard dummy = Loki::MakeGuard(::CloseHandle, hToken);
+ (void)dummy; //silence warning "unused variable"
- LUID luid = {0};
+ LUID luid = {};
if (!::LookupPrivilegeValue(
- NULL, //__in_opt LPCTSTR lpSystemName,
- privilege, //__in LPCTSTR lpName,
- &luid )) //__out PLUID lpLuid
+ NULL, //__in_opt LPCTSTR lpSystemName,
+ privilege, //__in LPCTSTR lpName,
+ &luid )) //__out PLUID lpLuid
{
const wxString errorMessage = wxString(_("Error setting privilege:")) + wxT(" \"") + privilege + wxT("\"") + wxT("\n\n");
throw FileError(errorMessage + ffs3::getLastErrorFormatted());
}
- TOKEN_PRIVILEGES tp = {0};
+ TOKEN_PRIVILEGES tp = {};
tp.PrivilegeCount = 1;
tp.Privileges[0].Luid = luid;
tp.Privileges[0].Attributes = enable ? SE_PRIVILEGE_ENABLED : 0;
if (!::AdjustTokenPrivileges(
- hToken, //__in HANDLE TokenHandle,
- false, //__in BOOL DisableAllPrivileges,
- &tp, //__in_opt PTOKEN_PRIVILEGES NewState,
- 0, //__in DWORD BufferLength,
- NULL, //__out_opt PTOKEN_PRIVILEGES PreviousState,
- NULL)) //__out_opt PDWORD ReturnLength
+ hToken, //__in HANDLE TokenHandle,
+ false, //__in BOOL DisableAllPrivileges,
+ &tp, //__in_opt PTOKEN_PRIVILEGES NewState,
+ 0, //__in DWORD BufferLength,
+ NULL, //__out_opt PTOKEN_PRIVILEGES PreviousState,
+ NULL)) //__out_opt PDWORD ReturnLength
{
const wxString errorMessage = wxString(_("Error setting privilege:")) + wxT(" \"") + privilege + wxT("\"") + wxT("\n\n");
throw FileError(errorMessage + ffs3::getLastErrorFormatted());
bgstack15