Changeset 988 for vendor/current/libcli/security/secacl.c
- Timestamp:
- Nov 24, 2016, 1:14:11 PM (9 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
vendor/current/libcli/security/secacl.c
r740 r988 1 /* 1 /* 2 2 * Unix SMB/Netbios implementation. 3 3 * SEC_ACL handling routines … … 6 6 * Copyright (C) Luke Kenneth Casson Leighton 1996-1998, 7 7 * Copyright (C) Paul Ashton 1997-1998. 8 * 8 * 9 9 * This program is free software; you can redistribute it and/or modify 10 10 * it under the terms of the GNU General Public License as published by 11 11 * the Free Software Foundation; either version 3 of the License, or 12 12 * (at your option) any later version. 13 * 13 * 14 14 * This program is distributed in the hope that it will be useful, 15 15 * but WITHOUT ANY WARRANTY; without even the implied warranty of 16 16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 17 17 * GNU General Public License for more details. 18 * 18 * 19 19 * You should have received a copy of the GNU General Public License 20 20 * along with this program; if not, see <http://www.gnu.org/licenses/>. … … 29 29 30 30 /******************************************************************* 31 Create a SEC_ACL structure. 31 Create a SEC_ACL structure. 32 32 ********************************************************************/ 33 33 34 struct security_acl *make_sec_acl(TALLOC_CTX *ctx, 35 36 34 struct security_acl *make_sec_acl(TALLOC_CTX *ctx, 35 enum security_acl_revision revision, 36 int num_aces, struct security_ace *ace_list) 37 37 { 38 38 struct security_acl *dst; 39 39 int i; 40 40 41 if((dst = talloc_zero(ctx, struct security_acl)) == NULL) 41 dst = talloc(ctx, struct security_acl); 42 if (dst == NULL) { 42 43 return NULL; 44 } 43 45 44 46 dst->revision = revision; 45 47 dst->num_aces = num_aces; 46 48 dst->size = SEC_ACL_HEADER_SIZE; 49 dst->aces = NULL; 47 50 48 51 /* Now we need to return a non-NULL address for the ace list even … … 52 55 positive number. */ 53 56 54 if ((num_aces) && 55 ((dst->aces = talloc_array(dst, struct security_ace, num_aces)) 56 == NULL)) { 57 if (num_aces == 0) { 58 return dst; 59 } 60 61 dst->aces = talloc_array(dst, struct security_ace, num_aces); 62 if (dst->aces == NULL) { 63 TALLOC_FREE(dst); 57 64 return NULL; 58 65 } 59 66 60 67 for (i = 0; i < num_aces; i++) { 61 68 dst->aces[i] = ace_list[i]; /* Structure copy. */ … … 65 72 return dst; 66 73 } 67 68 /*******************************************************************69 Duplicate a SEC_ACL structure.70 ********************************************************************/71 72 struct security_acl *dup_sec_acl(TALLOC_CTX *ctx, struct security_acl *src)73 {74 if(src == NULL)75 return NULL;76 77 return make_sec_acl(ctx, src->revision, src->num_aces, src->aces);78 }
Note:
See TracChangeset
for help on using the changeset viewer.