4 * Copyright (c) 2000 - 2011 Samsung Electronics Co., Ltd. All rights reserved.
6 * Contact: Jayoun Lee <airjany@samsung.com>, Sewook Park <sewook7.park@samsung.com>, Jaeho Lee <jaeho81.lee@samsung.com>
8 * Licensed under the Apache License, Version 2.0 (the "License");
9 * you may not use this file except in compliance with the License.
10 * You may obtain a copy of the License at
12 * http://www.apache.org/licenses/LICENSE-2.0
14 * Unless required by applicable law or agreed to in writing, software
15 * distributed under the License is distributed on an "AS IS" BASIS,
16 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
17 * See the License for the specific language governing permissions and
18 * limitations under the License.
25 #include <sys/types.h>
26 #include <sys/xattr.h>
29 #include <privilege-control.h>
31 #define INHOUSE_UID 5000
34 static inline void __dac_init()
38 static inline int __set_dac(const char *pkg_name)
40 return set_privilege(pkg_name);
43 static inline int __set_smack(char* path)
46 * This is additional option.
47 * Though such a application fails in this function, that error is ignored.
49 char label[LABEL_LEN + 1] = {0, };
53 result = getxattr(path, "security.SMACK64EXEC", label, LABEL_LEN);
54 if(result < 0) // fail to get extended attribute
55 return 0; // ignore error
57 fd = open("/proc/self/attr/current", O_RDWR);
58 if(fd < 0) // fail to open file
59 return 0; // ignore error
61 result = write(fd, label, strlen(label));
62 if(result < 0) { // fail to write label
64 return 0; // ignore error
72 static inline void __dac_init()
76 static inline int __set_dac(const char *pkg_name)
81 static inline int __set_smack(char* path)