Lines Matching +full:rc +full:- +full:map +full:- +full:name

21 #include <dix-config.h>
59 return (rec->size > key) ? rec->array[key] : 0; in SELinuxArrayGet()
65 if (key >= rec->size) { in SELinuxArraySet()
67 rec->array = reallocarray(rec->array, key + 1, sizeof(val)); in SELinuxArraySet()
68 if (!rec->array) in SELinuxArraySet()
70 memset(rec->array + rec->size, 0, (key - rec->size + 1) * sizeof(val)); in SELinuxArraySet()
71 rec->size = key + 1; in SELinuxArraySet()
74 rec->array[key] = val; in SELinuxArraySet()
82 unsigned i = rec->size; in SELinuxArrayFree()
85 free(rec->array[--i]); in SELinuxArrayFree()
88 free(rec->array); in SELinuxArrayFree()
89 rec->size = 0; in SELinuxArrayFree()
90 rec->array = NULL; in SELinuxArrayFree()
94 * Looks up a name in the selection or property mappings
97 SELinuxAtomToSIDLookup(Atom atom, SELinuxObjectRec * obj, int map, int polymap) in SELinuxAtomToSIDLookup() argument
99 const char *name = NameForAtom(atom); in SELinuxAtomToSIDLookup() local
101 int rc = Success; in SELinuxAtomToSIDLookup() local
103 obj->poly = 1; in SELinuxAtomToSIDLookup()
106 if (selabel_lookup_raw(label_hnd, &ctx, name, map) == 0) { in SELinuxAtomToSIDLookup()
107 obj->poly = 0; in SELinuxAtomToSIDLookup()
113 else if (selabel_lookup_raw(label_hnd, &ctx, name, polymap) < 0) { in SELinuxAtomToSIDLookup()
119 if (avc_context_to_sid_raw(ctx, &obj->sid) < 0) { in SELinuxAtomToSIDLookup()
121 rc = BadAlloc; in SELinuxAtomToSIDLookup()
125 return rc; in SELinuxAtomToSIDLookup()
136 int rc, map, polymap; in SELinuxAtomToSID() local
146 obj = &rec->prp; in SELinuxAtomToSID()
147 map = SELABEL_X_PROP; in SELinuxAtomToSID()
151 obj = &rec->sel; in SELinuxAtomToSID()
152 map = SELABEL_X_SELN; in SELinuxAtomToSID()
156 if (!obj->sid) { in SELinuxAtomToSID()
157 rc = SELinuxAtomToSIDLookup(atom, obj, map, polymap); in SELinuxAtomToSID()
158 if (rc != Success) in SELinuxAtomToSID()
163 rc = Success; in SELinuxAtomToSID()
165 return rc; in SELinuxAtomToSID()
175 int rc; in SELinuxSelectionToSID() local
180 rc = SELinuxAtomToSID(selection, 0, &obj); in SELinuxSelectionToSID()
181 if (rc != Success) in SELinuxSelectionToSID()
182 return rc; in SELinuxSelectionToSID()
185 if (subj->sel_use_sid) { in SELinuxSelectionToSID()
186 tsid = subj->sel_use_sid; in SELinuxSelectionToSID()
190 tsid = obj->sid; in SELinuxSelectionToSID()
193 if (obj->poly && avc_compute_member(subj->sid, obj->sid, in SELinuxSelectionToSID()
201 *poly_rtn = obj->poly; in SELinuxSelectionToSID()
212 int rc; in SELinuxPropertyToSID() local
217 rc = SELinuxAtomToSID(property, 1, &obj); in SELinuxPropertyToSID()
218 if (rc != Success) in SELinuxPropertyToSID()
219 return rc; in SELinuxPropertyToSID()
222 if (subj->prp_use_sid) { in SELinuxPropertyToSID()
223 tsid = subj->prp_use_sid; in SELinuxPropertyToSID()
228 if (avc_compute_create(subj->sid, obj->sid, SECCLASS_X_PROPERTY, &tsid) < 0) { in SELinuxPropertyToSID()
234 if (obj->poly) { in SELinuxPropertyToSID()
236 if (avc_compute_member(subj->sid, tsid2, in SELinuxPropertyToSID()
245 *poly_rtn = obj->poly; in SELinuxPropertyToSID()
256 const char *name = LookupEventName(type); in SELinuxEventToSID() local
265 if (selabel_lookup_raw(label_hnd, &ctx, name, SELABEL_X_EVENT) < 0) { in SELinuxEventToSID()
283 &sid_return->sid) < 0) { in SELinuxEventToSID()
292 SELinuxExtensionToSID(const char *name, security_id_t * sid_rtn) in SELinuxExtensionToSID() argument
297 if (selabel_lookup_raw(label_hnd, &ctx, name, SELABEL_X_EXT) < 0) { in SELinuxExtensionToSID()
356 FatalError("SELinux: failed to look up remote-client context\n"); in SELinuxDefaultClientLabel()