root/source3/lib/netapi/sid.c

/* [<][>][^][v][top][bottom][index][help] */

DEFINITIONS

This source file includes following definitions.
  1. ConvertSidToStringSid
  2. ConvertStringSidToSid

   1 /*
   2  *  Unix SMB/CIFS implementation.
   3  *  NetApi Support
   4  *  Copyright (C) Guenther Deschner 2008
   5  *
   6  *  This program is free software; you can redistribute it and/or modify
   7  *  it under the terms of the GNU General Public License as published by
   8  *  the Free Software Foundation; either version 3 of the License, or
   9  *  (at your option) any later version.
  10  *
  11  *  This program is distributed in the hope that it will be useful,
  12  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
  13  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  14  *  GNU General Public License for more details.
  15  *
  16  *  You should have received a copy of the GNU General Public License
  17  *  along with this program; if not, see <http://www.gnu.org/licenses/>.
  18  */
  19 
  20 #include "includes.h"
  21 
  22 #include "lib/netapi/netapi.h"
  23 
  24 /****************************************************************
  25 ****************************************************************/
  26 
  27 int ConvertSidToStringSid(const struct domsid *sid,
     /* [<][>][^][v][top][bottom][index][help] */
  28                           char **sid_string)
  29 {
  30         char *ret;
  31 
  32         if (!sid || !sid_string) {
  33                 return false;
  34         }
  35 
  36         ret = sid_string_talloc(NULL, (const struct dom_sid *)sid);
  37         if (!ret) {
  38                 return false;
  39         }
  40 
  41         *sid_string = SMB_STRDUP(ret);
  42 
  43         TALLOC_FREE(ret);
  44 
  45         if (!*sid_string) {
  46                 return false;
  47         }
  48 
  49         return true;
  50 }
  51 
  52 /****************************************************************
  53 ****************************************************************/
  54 
  55 int ConvertStringSidToSid(const char *sid_string,
     /* [<][>][^][v][top][bottom][index][help] */
  56                           struct domsid **sid)
  57 {
  58         struct dom_sid _sid;
  59 
  60         if (!sid_string || !sid) {
  61                 return false;
  62         }
  63 
  64         if (!string_to_sid(&_sid, sid_string)) {
  65                 return false;
  66         }
  67 
  68         *sid = (struct domsid *)SMB_MALLOC(sizeof(struct domsid));
  69         if (!*sid) {
  70                 return false;
  71         }
  72 
  73         sid_copy((struct dom_sid*)*sid, &_sid);
  74 
  75         return true;
  76 }

/* [<][>][^][v][top][bottom][index][help] */