X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=bacula%2Fsrc%2Ffindlib%2Fenable_priv.c;h=89b9b795da121ab2084325bb7eb394c6e74311a8;hb=e34a533319e7b947448eb90eb1a269958190e7b1;hp=aac1716618ddc2fe1b84439c1bf045b13640474a;hpb=ac2e40a9b011fd00ce9e2a08dc12f38d22e68136;p=bacula%2Fbacula diff --git a/bacula/src/findlib/enable_priv.c b/bacula/src/findlib/enable_priv.c index aac1716618..89b9b795da 100644 --- a/bacula/src/findlib/enable_priv.c +++ b/bacula/src/findlib/enable_priv.c @@ -1,12 +1,12 @@ /* Bacula® - The Network Backup Solution - Copyright (C) 2003-2008 Free Software Foundation Europe e.V. + Copyright (C) 2003-2009 Free Software Foundation Europe e.V. The main author of Bacula is Kern Sibbald, with contributions from many others, a complete list can be found in the file AUTHORS. This program is Free Software; you can redistribute it and/or - modify it under the terms of version two of the GNU General Public + modify it under the terms of version three of the GNU Affero General Public License as published by the Free Software Foundation and included in the file LICENSE. @@ -15,12 +15,12 @@ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - You should have received a copy of the GNU General Public License + You should have received a copy of the GNU Affero General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - Bacula® is a registered trademark of John Walker. + Bacula® is a registered trademark of Kern Sibbald. The licensor of Bacula is the Free Software Foundation Europe (FSFE), Fiduciary Program, Sumatrastrasse 25, 8006 Zürich, Switzerland, email:ftf@fsfeurope.org. @@ -63,10 +63,10 @@ int enable_backup_privileges(JCR *jcr, int ignore_errors) #if defined(HAVE_WIN32) -void win_error(JCR *jcr, char *prefix, DWORD lerror); +void win_error(JCR *jcr, const char *prefix, DWORD lerror); static int -enable_priv(JCR *jcr, HANDLE hToken, char *name, int ignore_errors) +enable_priv(JCR *jcr, HANDLE hToken, const char *name, int ignore_errors) { TOKEN_PRIVILEGES tkp; DWORD lerror; @@ -84,7 +84,7 @@ enable_priv(JCR *jcr, HANDLE hToken, char *name, int ignore_errors) /* Set the security privilege for this process. */ tkp.PrivilegeCount = 1; tkp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED; - p_AdjustTokenPrivileges(hToken, FALSE, &tkp, 0, NULL, NULL); + p_AdjustTokenPrivileges(hToken, FALSE, &tkp, sizeof(TOKEN_PRIVILEGES), NULL, NULL); lerror = GetLastError(); if (lerror != ERROR_SUCCESS) { if (!ignore_errors) { @@ -130,7 +130,6 @@ int enable_backup_privileges(JCR *jcr, int ignore_errors) if (enable_priv(jcr, hToken, SE_RESTORE_NAME, ignore_errors)) { stat |= 1<<2; } -#if 0 if (enable_priv(jcr, hToken, SE_SECURITY_NAME, ignore_errors)) { stat |= 1<<0; } @@ -155,7 +154,7 @@ int enable_backup_privileges(JCR *jcr, int ignore_errors) if (enable_priv(jcr, hToken, SE_CREATE_PERMANENT_NAME, ignore_errors)) { stat |= 1<<10; } -#endif + if (stat) { stat |= 1<<9; }