Branch data Line data Source code
1 : : /*
2 : : * Capabilities Linux Security Module
3 : : *
4 : : * This is the default security module in case no other module is loaded.
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 2 of the License, or
9 : : * (at your option) any later version.
10 : : *
11 : : */
12 : :
13 : : #include <linux/security.h>
14 : :
15 : 0 : static int cap_binder_set_context_mgr(struct task_struct *mgr)
16 : : {
17 : 0 : return 0;
18 : : }
19 : :
20 : 0 : static int cap_binder_transaction(struct task_struct *from, struct task_struct *to)
21 : : {
22 : 0 : return 0;
23 : : }
24 : :
25 : 0 : static int cap_binder_transfer_binder(struct task_struct *from, struct task_struct *to)
26 : : {
27 : 0 : return 0;
28 : : }
29 : :
30 : 0 : static int cap_binder_transfer_file(struct task_struct *from, struct task_struct *to, struct file *file)
31 : : {
32 : 0 : return 0;
33 : : }
34 : :
35 : 0 : static int cap_syslog(int type)
36 : : {
37 : 1624 : return 0;
38 : : }
39 : :
40 : 0 : static int cap_quotactl(int cmds, int type, int id, struct super_block *sb)
41 : : {
42 : 0 : return 0;
43 : : }
44 : :
45 : 0 : static int cap_quota_on(struct dentry *dentry)
46 : : {
47 : 0 : return 0;
48 : : }
49 : :
50 : 0 : static int cap_bprm_check_security(struct linux_binprm *bprm)
51 : : {
52 : 27607 : return 0;
53 : : }
54 : :
55 : 0 : static void cap_bprm_committing_creds(struct linux_binprm *bprm)
56 : : {
57 : 0 : }
58 : :
59 : 0 : static void cap_bprm_committed_creds(struct linux_binprm *bprm)
60 : : {
61 : 0 : }
62 : :
63 : 0 : static int cap_sb_alloc_security(struct super_block *sb)
64 : : {
65 : 28 : return 0;
66 : : }
67 : :
68 : 0 : static void cap_sb_free_security(struct super_block *sb)
69 : : {
70 : 28 : }
71 : :
72 : 0 : static int cap_sb_copy_data(char *orig, char *copy)
73 : : {
74 : 5 : return 0;
75 : : }
76 : :
77 : 0 : static int cap_sb_remount(struct super_block *sb, void *data)
78 : : {
79 : 8 : return 0;
80 : : }
81 : :
82 : 0 : static int cap_sb_kern_mount(struct super_block *sb, int flags, void *data)
83 : : {
84 : 29 : return 0;
85 : : }
86 : :
87 : 0 : static int cap_sb_show_options(struct seq_file *m, struct super_block *sb)
88 : : {
89 : 605 : return 0;
90 : : }
91 : :
92 : 0 : static int cap_sb_statfs(struct dentry *dentry)
93 : : {
94 : 8243 : return 0;
95 : : }
96 : :
97 : 0 : static int cap_sb_mount(const char *dev_name, struct path *path,
98 : : const char *type, unsigned long flags, void *data)
99 : : {
100 : 3118 : return 0;
101 : : }
102 : :
103 : 0 : static int cap_sb_umount(struct vfsmount *mnt, int flags)
104 : : {
105 : 76 : return 0;
106 : : }
107 : :
108 : 0 : static int cap_sb_pivotroot(struct path *old_path, struct path *new_path)
109 : : {
110 : 0 : return 0;
111 : : }
112 : :
113 : 0 : static int cap_sb_set_mnt_opts(struct super_block *sb,
114 : : struct security_mnt_opts *opts,
115 : : unsigned long kern_flags,
116 : : unsigned long *set_kern_flags)
117 : :
118 : : {
119 [ # # ]: 0 : if (unlikely(opts->num_mnt_opts))
120 : : return -EOPNOTSUPP;
121 : 0 : return 0;
122 : : }
123 : :
124 : 0 : static int cap_sb_clone_mnt_opts(const struct super_block *oldsb,
125 : : struct super_block *newsb)
126 : : {
127 : 0 : return 0;
128 : : }
129 : :
130 : 0 : static int cap_sb_parse_opts_str(char *options, struct security_mnt_opts *opts)
131 : : {
132 : 0 : return 0;
133 : : }
134 : :
135 : 0 : static int cap_dentry_init_security(struct dentry *dentry, int mode,
136 : : struct qstr *name, void **ctx,
137 : : u32 *ctxlen)
138 : : {
139 : 0 : return 0;
140 : : }
141 : :
142 : 0 : static int cap_inode_alloc_security(struct inode *inode)
143 : : {
144 : 1702069 : return 0;
145 : : }
146 : :
147 : 0 : static void cap_inode_free_security(struct inode *inode)
148 : : {
149 : 1684399 : }
150 : :
151 : 0 : static int cap_inode_init_security(struct inode *inode, struct inode *dir,
152 : : const struct qstr *qstr, const char **name,
153 : : void **value, size_t *len)
154 : : {
155 : 833 : return -EOPNOTSUPP;
156 : : }
157 : :
158 : 0 : static int cap_inode_create(struct inode *inode, struct dentry *dentry,
159 : : umode_t mask)
160 : : {
161 : 186314 : return 0;
162 : : }
163 : :
164 : 0 : static int cap_inode_link(struct dentry *old_dentry, struct inode *inode,
165 : : struct dentry *new_dentry)
166 : : {
167 : 5288 : return 0;
168 : : }
169 : :
170 : 0 : static int cap_inode_unlink(struct inode *inode, struct dentry *dentry)
171 : : {
172 : 88900 : return 0;
173 : : }
174 : :
175 : 0 : static int cap_inode_symlink(struct inode *inode, struct dentry *dentry,
176 : : const char *name)
177 : : {
178 : 4626 : return 0;
179 : : }
180 : :
181 : 0 : static int cap_inode_mkdir(struct inode *inode, struct dentry *dentry,
182 : : umode_t mask)
183 : : {
184 : 35142 : return 0;
185 : : }
186 : :
187 : 0 : static int cap_inode_rmdir(struct inode *inode, struct dentry *dentry)
188 : : {
189 : 35349 : return 0;
190 : : }
191 : :
192 : 0 : static int cap_inode_mknod(struct inode *inode, struct dentry *dentry,
193 : : umode_t mode, dev_t dev)
194 : : {
195 : 46904 : return 0;
196 : : }
197 : :
198 : 0 : static int cap_inode_rename(struct inode *old_inode, struct dentry *old_dentry,
199 : : struct inode *new_inode, struct dentry *new_dentry)
200 : : {
201 : 153092 : return 0;
202 : : }
203 : :
204 : 0 : static int cap_inode_readlink(struct dentry *dentry)
205 : : {
206 : 12068 : return 0;
207 : : }
208 : :
209 : 0 : static int cap_inode_follow_link(struct dentry *dentry,
210 : : struct nameidata *nameidata)
211 : : {
212 : 137939 : return 0;
213 : : }
214 : :
215 : 0 : static int cap_inode_permission(struct inode *inode, int mask)
216 : : {
217 : 17865320 : return 0;
218 : : }
219 : :
220 : 0 : static int cap_inode_setattr(struct dentry *dentry, struct iattr *iattr)
221 : : {
222 : 45068 : return 0;
223 : : }
224 : :
225 : 0 : static int cap_inode_getattr(struct vfsmount *mnt, struct dentry *dentry)
226 : : {
227 : 0 : return 0;
228 : : }
229 : :
230 : 0 : static void cap_inode_post_setxattr(struct dentry *dentry, const char *name,
231 : : const void *value, size_t size, int flags)
232 : : {
233 : 0 : }
234 : :
235 : 0 : static int cap_inode_getxattr(struct dentry *dentry, const char *name)
236 : : {
237 : 199 : return 0;
238 : : }
239 : :
240 : 0 : static int cap_inode_listxattr(struct dentry *dentry)
241 : : {
242 : 4 : return 0;
243 : : }
244 : :
245 : 0 : static int cap_inode_getsecurity(const struct inode *inode, const char *name,
246 : : void **buffer, bool alloc)
247 : : {
248 : 84 : return -EOPNOTSUPP;
249 : : }
250 : :
251 : 0 : static int cap_inode_setsecurity(struct inode *inode, const char *name,
252 : : const void *value, size_t size, int flags)
253 : : {
254 : 0 : return -EOPNOTSUPP;
255 : : }
256 : :
257 : 0 : static int cap_inode_listsecurity(struct inode *inode, char *buffer,
258 : : size_t buffer_size)
259 : : {
260 : 0 : return 0;
261 : : }
262 : :
263 : 0 : static void cap_inode_getsecid(const struct inode *inode, u32 *secid)
264 : : {
265 : 219 : *secid = 0;
266 : 219 : }
267 : :
268 : : #ifdef CONFIG_SECURITY_PATH
269 : 0 : static int cap_path_mknod(struct path *dir, struct dentry *dentry, umode_t mode,
270 : : unsigned int dev)
271 : : {
272 : 0 : return 0;
273 : : }
274 : :
275 : 0 : static int cap_path_mkdir(struct path *dir, struct dentry *dentry, umode_t mode)
276 : : {
277 : 0 : return 0;
278 : : }
279 : :
280 : 0 : static int cap_path_rmdir(struct path *dir, struct dentry *dentry)
281 : : {
282 : 0 : return 0;
283 : : }
284 : :
285 : 0 : static int cap_path_unlink(struct path *dir, struct dentry *dentry)
286 : : {
287 : 0 : return 0;
288 : : }
289 : :
290 : 0 : static int cap_path_symlink(struct path *dir, struct dentry *dentry,
291 : : const char *old_name)
292 : : {
293 : 0 : return 0;
294 : : }
295 : :
296 : 0 : static int cap_path_link(struct dentry *old_dentry, struct path *new_dir,
297 : : struct dentry *new_dentry)
298 : : {
299 : 0 : return 0;
300 : : }
301 : :
302 : 0 : static int cap_path_rename(struct path *old_path, struct dentry *old_dentry,
303 : : struct path *new_path, struct dentry *new_dentry)
304 : : {
305 : 0 : return 0;
306 : : }
307 : :
308 : 0 : static int cap_path_truncate(struct path *path)
309 : : {
310 : 0 : return 0;
311 : : }
312 : :
313 : 0 : static int cap_path_chmod(struct path *path, umode_t mode)
314 : : {
315 : 0 : return 0;
316 : : }
317 : :
318 : 0 : static int cap_path_chown(struct path *path, kuid_t uid, kgid_t gid)
319 : : {
320 : 0 : return 0;
321 : : }
322 : :
323 : 0 : static int cap_path_chroot(struct path *root)
324 : : {
325 : 1 : return 0;
326 : : }
327 : : #endif
328 : :
329 : 0 : static int cap_file_permission(struct file *file, int mask)
330 : : {
331 : 0 : return 0;
332 : : }
333 : :
334 : 0 : static int cap_file_alloc_security(struct file *file)
335 : : {
336 : 0 : return 0;
337 : : }
338 : :
339 : 0 : static void cap_file_free_security(struct file *file)
340 : : {
341 : 0 : }
342 : :
343 : 0 : static int cap_file_ioctl(struct file *file, unsigned int command,
344 : : unsigned long arg)
345 : : {
346 : 53082 : return 0;
347 : : }
348 : :
349 : 0 : static int cap_file_mprotect(struct vm_area_struct *vma, unsigned long reqprot,
350 : : unsigned long prot)
351 : : {
352 : 0 : return 0;
353 : : }
354 : :
355 : 0 : static int cap_file_lock(struct file *file, unsigned int cmd)
356 : : {
357 : 0 : return 0;
358 : : }
359 : :
360 : 0 : static int cap_file_fcntl(struct file *file, unsigned int cmd,
361 : : unsigned long arg)
362 : : {
363 : 2259354 : return 0;
364 : : }
365 : :
366 : 0 : static int cap_file_set_fowner(struct file *file)
367 : : {
368 : 8 : return 0;
369 : : }
370 : :
371 : 0 : static int cap_file_send_sigiotask(struct task_struct *tsk,
372 : : struct fown_struct *fown, int sig)
373 : : {
374 : 0 : return 0;
375 : : }
376 : :
377 : 0 : static int cap_file_receive(struct file *file)
378 : : {
379 : 2 : return 0;
380 : : }
381 : :
382 : 0 : static int cap_file_open(struct file *file, const struct cred *cred)
383 : : {
384 : 0 : return 0;
385 : : }
386 : :
387 : 0 : static int cap_task_create(unsigned long clone_flags)
388 : : {
389 : 1104224 : return 0;
390 : : }
391 : :
392 : 0 : static void cap_task_free(struct task_struct *task)
393 : : {
394 : 1103368 : }
395 : :
396 : 0 : static int cap_cred_alloc_blank(struct cred *cred, gfp_t gfp)
397 : : {
398 : 0 : return 0;
399 : : }
400 : :
401 : 0 : static void cap_cred_free(struct cred *cred)
402 : : {
403 : 0 : }
404 : :
405 : 0 : static int cap_cred_prepare(struct cred *new, const struct cred *old, gfp_t gfp)
406 : : {
407 : 0 : return 0;
408 : : }
409 : :
410 : 0 : static void cap_cred_transfer(struct cred *new, const struct cred *old)
411 : : {
412 : 0 : }
413 : :
414 : 0 : static int cap_kernel_act_as(struct cred *new, u32 secid)
415 : : {
416 : 0 : return 0;
417 : : }
418 : :
419 : 0 : static int cap_kernel_create_files_as(struct cred *new, struct inode *inode)
420 : : {
421 : 0 : return 0;
422 : : }
423 : :
424 : 0 : static int cap_kernel_module_request(char *kmod_name)
425 : : {
426 : 25 : return 0;
427 : : }
428 : :
429 : 0 : static int cap_kernel_module_from_file(struct file *file)
430 : : {
431 : 0 : return 0;
432 : : }
433 : :
434 : 0 : static int cap_task_setpgid(struct task_struct *p, pid_t pgid)
435 : : {
436 : 1428 : return 0;
437 : : }
438 : :
439 : 0 : static int cap_task_getpgid(struct task_struct *p)
440 : : {
441 : 36 : return 0;
442 : : }
443 : :
444 : 0 : static int cap_task_getsid(struct task_struct *p)
445 : : {
446 : 0 : return 0;
447 : : }
448 : :
449 : 0 : static void cap_task_getsecid(struct task_struct *p, u32 *secid)
450 : : {
451 : 219 : *secid = 0;
452 : 219 : }
453 : :
454 : 0 : static int cap_task_getioprio(struct task_struct *p)
455 : : {
456 : 0 : return 0;
457 : : }
458 : :
459 : 0 : static int cap_task_setrlimit(struct task_struct *p, unsigned int resource,
460 : : struct rlimit *new_rlim)
461 : : {
462 : 0 : return 0;
463 : : }
464 : :
465 : 0 : static int cap_task_getscheduler(struct task_struct *p)
466 : : {
467 : 307 : return 0;
468 : : }
469 : :
470 : 0 : static int cap_task_movememory(struct task_struct *p)
471 : : {
472 : 0 : return 0;
473 : : }
474 : :
475 : 0 : static int cap_task_wait(struct task_struct *p)
476 : : {
477 : 2788396 : return 0;
478 : : }
479 : :
480 : 0 : static int cap_task_kill(struct task_struct *p, struct siginfo *info,
481 : : int sig, u32 secid)
482 : : {
483 : 9977143 : return 0;
484 : : }
485 : :
486 : 0 : static void cap_task_to_inode(struct task_struct *p, struct inode *inode)
487 : : {
488 : 178083 : }
489 : :
490 : 0 : static int cap_ipc_permission(struct kern_ipc_perm *ipcp, short flag)
491 : : {
492 : 50149348 : return 0;
493 : : }
494 : :
495 : 0 : static void cap_ipc_getsecid(struct kern_ipc_perm *ipcp, u32 *secid)
496 : : {
497 : 0 : *secid = 0;
498 : 0 : }
499 : :
500 : 0 : static int cap_msg_msg_alloc_security(struct msg_msg *msg)
501 : : {
502 : 22912035 : return 0;
503 : : }
504 : :
505 : 0 : static void cap_msg_msg_free_security(struct msg_msg *msg)
506 : : {
507 : 22644535 : }
508 : :
509 : 0 : static int cap_msg_queue_alloc_security(struct msg_queue *msq)
510 : : {
511 : 4427 : return 0;
512 : : }
513 : :
514 : 0 : static void cap_msg_queue_free_security(struct msg_queue *msq)
515 : : {
516 : 4411 : }
517 : :
518 : 0 : static int cap_msg_queue_associate(struct msg_queue *msq, int msqflg)
519 : : {
520 : 17755 : return 0;
521 : : }
522 : :
523 : 0 : static int cap_msg_queue_msgctl(struct msg_queue *msq, int cmd)
524 : : {
525 : 4442 : return 0;
526 : : }
527 : :
528 : 0 : static int cap_msg_queue_msgsnd(struct msg_queue *msq, struct msg_msg *msg,
529 : : int msgflg)
530 : : {
531 : 27722973 : return 0;
532 : : }
533 : :
534 : 0 : static int cap_msg_queue_msgrcv(struct msg_queue *msq, struct msg_msg *msg,
535 : : struct task_struct *target, long type, int mode)
536 : : {
537 : 22355105 : return 0;
538 : : }
539 : :
540 : 0 : static int cap_shm_alloc_security(struct shmid_kernel *shp)
541 : : {
542 : 4175 : return 0;
543 : : }
544 : :
545 : 0 : static void cap_shm_free_security(struct shmid_kernel *shp)
546 : : {
547 : 4175 : }
548 : :
549 : 0 : static int cap_shm_associate(struct shmid_kernel *shp, int shmflg)
550 : : {
551 : 7 : return 0;
552 : : }
553 : :
554 : 0 : static int cap_shm_shmctl(struct shmid_kernel *shp, int cmd)
555 : : {
556 : 4198 : return 0;
557 : : }
558 : :
559 : 0 : static int cap_shm_shmat(struct shmid_kernel *shp, char __user *shmaddr,
560 : : int shmflg)
561 : : {
562 : 1084 : return 0;
563 : : }
564 : :
565 : 0 : static int cap_sem_alloc_security(struct sem_array *sma)
566 : : {
567 : 168 : return 0;
568 : : }
569 : :
570 : 0 : static void cap_sem_free_security(struct sem_array *sma)
571 : : {
572 : 168 : }
573 : :
574 : 0 : static int cap_sem_associate(struct sem_array *sma, int semflg)
575 : : {
576 : 0 : return 0;
577 : : }
578 : :
579 : 0 : static int cap_sem_semctl(struct sem_array *sma, int cmd)
580 : : {
581 : 478242 : return 0;
582 : : }
583 : :
584 : 0 : static int cap_sem_semop(struct sem_array *sma, struct sembuf *sops,
585 : : unsigned nsops, int alter)
586 : : {
587 : 15634 : return 0;
588 : : }
589 : :
590 : : #ifdef CONFIG_SECURITY_NETWORK
591 : 0 : static int cap_unix_stream_connect(struct sock *sock, struct sock *other,
592 : : struct sock *newsk)
593 : : {
594 : 101 : return 0;
595 : : }
596 : :
597 : 0 : static int cap_unix_may_send(struct socket *sock, struct socket *other)
598 : : {
599 : 11580 : return 0;
600 : : }
601 : :
602 : 0 : static int cap_socket_create(int family, int type, int protocol, int kern)
603 : : {
604 : 527993 : return 0;
605 : : }
606 : :
607 : 0 : static int cap_socket_post_create(struct socket *sock, int family, int type,
608 : : int protocol, int kern)
609 : : {
610 : 529045 : return 0;
611 : : }
612 : :
613 : 0 : static int cap_socket_bind(struct socket *sock, struct sockaddr *address,
614 : : int addrlen)
615 : : {
616 : 47375 : return 0;
617 : : }
618 : :
619 : 0 : static int cap_socket_connect(struct socket *sock, struct sockaddr *address,
620 : : int addrlen)
621 : : {
622 : 6018 : return 0;
623 : : }
624 : :
625 : 0 : static int cap_socket_listen(struct socket *sock, int backlog)
626 : : {
627 : 11 : return 0;
628 : : }
629 : :
630 : 0 : static int cap_socket_accept(struct socket *sock, struct socket *newsock)
631 : : {
632 : 148 : return 0;
633 : : }
634 : :
635 : 0 : static int cap_socket_sendmsg(struct socket *sock, struct msghdr *msg, int size)
636 : : {
637 : 1241405 : return 0;
638 : : }
639 : :
640 : 0 : static int cap_socket_recvmsg(struct socket *sock, struct msghdr *msg,
641 : : int size, int flags)
642 : : {
643 : 799837 : return 0;
644 : : }
645 : :
646 : 0 : static int cap_socket_getsockname(struct socket *sock)
647 : : {
648 : 758 : return 0;
649 : : }
650 : :
651 : 0 : static int cap_socket_getpeername(struct socket *sock)
652 : : {
653 : 5 : return 0;
654 : : }
655 : :
656 : 0 : static int cap_socket_setsockopt(struct socket *sock, int level, int optname)
657 : : {
658 : 83 : return 0;
659 : : }
660 : :
661 : 0 : static int cap_socket_getsockopt(struct socket *sock, int level, int optname)
662 : : {
663 : 105 : return 0;
664 : : }
665 : :
666 : 0 : static int cap_socket_shutdown(struct socket *sock, int how)
667 : : {
668 : 47 : return 0;
669 : : }
670 : :
671 : 0 : static int cap_socket_sock_rcv_skb(struct sock *sk, struct sk_buff *skb)
672 : : {
673 : 39120 : return 0;
674 : : }
675 : :
676 : 0 : static int cap_socket_getpeersec_stream(struct socket *sock,
677 : : char __user *optval,
678 : : int __user *optlen, unsigned len)
679 : : {
680 : 0 : return -ENOPROTOOPT;
681 : : }
682 : :
683 : 0 : static int cap_socket_getpeersec_dgram(struct socket *sock,
684 : : struct sk_buff *skb, u32 *secid)
685 : : {
686 : 1226434 : return -ENOPROTOOPT;
687 : : }
688 : :
689 : 0 : static int cap_sk_alloc_security(struct sock *sk, int family, gfp_t priority)
690 : : {
691 : 496222 : return 0;
692 : : }
693 : :
694 : 0 : static void cap_sk_free_security(struct sock *sk)
695 : : {
696 : 487986 : }
697 : :
698 : 0 : static void cap_sk_clone_security(const struct sock *sk, struct sock *newsk)
699 : : {
700 : 26 : }
701 : :
702 : 0 : static void cap_sk_getsecid(struct sock *sk, u32 *secid)
703 : : {
704 : 93 : }
705 : :
706 : 0 : static void cap_sock_graft(struct sock *sk, struct socket *parent)
707 : : {
708 : 127 : }
709 : :
710 : 0 : static int cap_inet_conn_request(struct sock *sk, struct sk_buff *skb,
711 : : struct request_sock *req)
712 : : {
713 : 26 : return 0;
714 : : }
715 : :
716 : 0 : static void cap_inet_csk_clone(struct sock *newsk,
717 : : const struct request_sock *req)
718 : : {
719 : 26 : }
720 : :
721 : 0 : static void cap_inet_conn_established(struct sock *sk, struct sk_buff *skb)
722 : : {
723 : 26 : }
724 : :
725 : 0 : static int cap_secmark_relabel_packet(u32 secid)
726 : : {
727 : 0 : return 0;
728 : : }
729 : :
730 : 0 : static void cap_secmark_refcount_inc(void)
731 : : {
732 : 0 : }
733 : :
734 : 0 : static void cap_secmark_refcount_dec(void)
735 : : {
736 : 0 : }
737 : :
738 : 0 : static void cap_req_classify_flow(const struct request_sock *req,
739 : : struct flowi *fl)
740 : : {
741 : 52 : }
742 : :
743 : 0 : static int cap_tun_dev_alloc_security(void **security)
744 : : {
745 : 0 : return 0;
746 : : }
747 : :
748 : 0 : static void cap_tun_dev_free_security(void *security)
749 : : {
750 : 0 : }
751 : :
752 : 0 : static int cap_tun_dev_create(void)
753 : : {
754 : 0 : return 0;
755 : : }
756 : :
757 : 0 : static int cap_tun_dev_attach_queue(void *security)
758 : : {
759 : 0 : return 0;
760 : : }
761 : :
762 : 0 : static int cap_tun_dev_attach(struct sock *sk, void *security)
763 : : {
764 : 0 : return 0;
765 : : }
766 : :
767 : 0 : static int cap_tun_dev_open(void *security)
768 : : {
769 : 0 : return 0;
770 : : }
771 : :
772 : 0 : static void cap_skb_owned_by(struct sk_buff *skb, struct sock *sk)
773 : : {
774 : 26 : }
775 : :
776 : : #endif /* CONFIG_SECURITY_NETWORK */
777 : :
778 : : #ifdef CONFIG_SECURITY_NETWORK_XFRM
779 : : static int cap_xfrm_policy_alloc_security(struct xfrm_sec_ctx **ctxp,
780 : : struct xfrm_user_sec_ctx *sec_ctx,
781 : : gfp_t gfp)
782 : : {
783 : : return 0;
784 : : }
785 : :
786 : : static int cap_xfrm_policy_clone_security(struct xfrm_sec_ctx *old_ctx,
787 : : struct xfrm_sec_ctx **new_ctxp)
788 : : {
789 : : return 0;
790 : : }
791 : :
792 : : static void cap_xfrm_policy_free_security(struct xfrm_sec_ctx *ctx)
793 : : {
794 : : }
795 : :
796 : : static int cap_xfrm_policy_delete_security(struct xfrm_sec_ctx *ctx)
797 : : {
798 : : return 0;
799 : : }
800 : :
801 : : static int cap_xfrm_state_alloc(struct xfrm_state *x,
802 : : struct xfrm_user_sec_ctx *sec_ctx)
803 : : {
804 : : return 0;
805 : : }
806 : :
807 : : static int cap_xfrm_state_alloc_acquire(struct xfrm_state *x,
808 : : struct xfrm_sec_ctx *polsec,
809 : : u32 secid)
810 : : {
811 : : return 0;
812 : : }
813 : :
814 : : static void cap_xfrm_state_free_security(struct xfrm_state *x)
815 : : {
816 : : }
817 : :
818 : : static int cap_xfrm_state_delete_security(struct xfrm_state *x)
819 : : {
820 : : return 0;
821 : : }
822 : :
823 : : static int cap_xfrm_policy_lookup(struct xfrm_sec_ctx *ctx, u32 sk_sid, u8 dir)
824 : : {
825 : : return 0;
826 : : }
827 : :
828 : : static int cap_xfrm_state_pol_flow_match(struct xfrm_state *x,
829 : : struct xfrm_policy *xp,
830 : : const struct flowi *fl)
831 : : {
832 : : return 1;
833 : : }
834 : :
835 : : static int cap_xfrm_decode_session(struct sk_buff *skb, u32 *fl, int ckall)
836 : : {
837 : : return 0;
838 : : }
839 : :
840 : : #endif /* CONFIG_SECURITY_NETWORK_XFRM */
841 : 0 : static void cap_d_instantiate(struct dentry *dentry, struct inode *inode)
842 : : {
843 : 2464837 : }
844 : :
845 : 0 : static int cap_getprocattr(struct task_struct *p, char *name, char **value)
846 : : {
847 : 0 : return -EINVAL;
848 : : }
849 : :
850 : 0 : static int cap_setprocattr(struct task_struct *p, char *name, void *value,
851 : : size_t size)
852 : : {
853 : 0 : return -EINVAL;
854 : : }
855 : :
856 : 0 : static int cap_ismaclabel(const char *name)
857 : : {
858 : 0 : return 0;
859 : : }
860 : :
861 : 0 : static int cap_secid_to_secctx(u32 secid, char **secdata, u32 *seclen)
862 : : {
863 : 0 : return -EOPNOTSUPP;
864 : : }
865 : :
866 : 0 : static int cap_secctx_to_secid(const char *secdata, u32 seclen, u32 *secid)
867 : : {
868 : 0 : *secid = 0;
869 : 0 : return 0;
870 : : }
871 : :
872 : 0 : static void cap_release_secctx(char *secdata, u32 seclen)
873 : : {
874 : 0 : }
875 : :
876 : 0 : static int cap_inode_notifysecctx(struct inode *inode, void *ctx, u32 ctxlen)
877 : : {
878 : 208 : return 0;
879 : : }
880 : :
881 : 0 : static int cap_inode_setsecctx(struct dentry *dentry, void *ctx, u32 ctxlen)
882 : : {
883 : 0 : return 0;
884 : : }
885 : :
886 : 0 : static int cap_inode_getsecctx(struct inode *inode, void **ctx, u32 *ctxlen)
887 : : {
888 : 0 : return -EOPNOTSUPP;
889 : : }
890 : : #ifdef CONFIG_KEYS
891 : 0 : static int cap_key_alloc(struct key *key, const struct cred *cred,
892 : : unsigned long flags)
893 : : {
894 : 3 : return 0;
895 : : }
896 : :
897 : 0 : static void cap_key_free(struct key *key)
898 : : {
899 : 3 : }
900 : :
901 : 0 : static int cap_key_permission(key_ref_t key_ref, const struct cred *cred,
902 : : key_perm_t perm)
903 : : {
904 : 4 : return 0;
905 : : }
906 : :
907 : 0 : static int cap_key_getsecurity(struct key *key, char **_buffer)
908 : : {
909 : 0 : *_buffer = NULL;
910 : 0 : return 0;
911 : : }
912 : :
913 : : #endif /* CONFIG_KEYS */
914 : :
915 : : #ifdef CONFIG_AUDIT
916 : 0 : static int cap_audit_rule_init(u32 field, u32 op, char *rulestr, void **lsmrule)
917 : : {
918 : 0 : return 0;
919 : : }
920 : :
921 : 0 : static int cap_audit_rule_known(struct audit_krule *krule)
922 : : {
923 : 0 : return 0;
924 : : }
925 : :
926 : 0 : static int cap_audit_rule_match(u32 secid, u32 field, u32 op, void *lsmrule,
927 : : struct audit_context *actx)
928 : : {
929 : 0 : return 0;
930 : : }
931 : :
932 : 0 : static void cap_audit_rule_free(void *lsmrule)
933 : : {
934 : 0 : }
935 : : #endif /* CONFIG_AUDIT */
936 : :
937 : : #define set_to_cap_if_null(ops, function) \
938 : : do { \
939 : : if (!ops->function) { \
940 : : ops->function = cap_##function; \
941 : : pr_debug("Had to override the " #function \
942 : : " security operation with the default.\n");\
943 : : } \
944 : : } while (0)
945 : :
946 : 0 : void __init security_fixup_ops(struct security_operations *ops)
947 : : {
948 [ # # ]: 0 : set_to_cap_if_null(ops, binder_set_context_mgr);
949 [ # # ]: 0 : set_to_cap_if_null(ops, binder_transaction);
950 [ # # ]: 0 : set_to_cap_if_null(ops, binder_transfer_binder);
951 [ # # ]: 0 : set_to_cap_if_null(ops, binder_transfer_file);
952 [ # # ]: 0 : set_to_cap_if_null(ops, ptrace_access_check);
953 [ # # ]: 0 : set_to_cap_if_null(ops, ptrace_traceme);
954 [ # # ]: 0 : set_to_cap_if_null(ops, capget);
955 [ # # ]: 0 : set_to_cap_if_null(ops, capset);
956 [ # # ]: 0 : set_to_cap_if_null(ops, capable);
957 [ # # ]: 0 : set_to_cap_if_null(ops, quotactl);
958 [ # # ]: 0 : set_to_cap_if_null(ops, quota_on);
959 [ # # ]: 0 : set_to_cap_if_null(ops, syslog);
960 [ # # ]: 0 : set_to_cap_if_null(ops, settime);
961 [ # # ]: 0 : set_to_cap_if_null(ops, vm_enough_memory);
962 [ # # ]: 0 : set_to_cap_if_null(ops, bprm_set_creds);
963 [ # # ]: 0 : set_to_cap_if_null(ops, bprm_committing_creds);
964 [ # # ]: 0 : set_to_cap_if_null(ops, bprm_committed_creds);
965 [ # # ]: 0 : set_to_cap_if_null(ops, bprm_check_security);
966 [ # # ]: 0 : set_to_cap_if_null(ops, bprm_secureexec);
967 [ # # ]: 0 : set_to_cap_if_null(ops, sb_alloc_security);
968 [ # # ]: 0 : set_to_cap_if_null(ops, sb_free_security);
969 [ # # ]: 0 : set_to_cap_if_null(ops, sb_copy_data);
970 [ # # ]: 0 : set_to_cap_if_null(ops, sb_remount);
971 [ # # ]: 0 : set_to_cap_if_null(ops, sb_kern_mount);
972 [ # # ]: 0 : set_to_cap_if_null(ops, sb_show_options);
973 [ # # ]: 0 : set_to_cap_if_null(ops, sb_statfs);
974 [ # # ]: 0 : set_to_cap_if_null(ops, sb_mount);
975 [ # # ]: 0 : set_to_cap_if_null(ops, sb_umount);
976 [ # # ]: 0 : set_to_cap_if_null(ops, sb_pivotroot);
977 [ # # ]: 0 : set_to_cap_if_null(ops, sb_set_mnt_opts);
978 [ # # ]: 0 : set_to_cap_if_null(ops, sb_clone_mnt_opts);
979 [ # # ]: 0 : set_to_cap_if_null(ops, sb_parse_opts_str);
980 [ # # ]: 0 : set_to_cap_if_null(ops, dentry_init_security);
981 [ # # ]: 0 : set_to_cap_if_null(ops, inode_alloc_security);
982 [ # # ]: 0 : set_to_cap_if_null(ops, inode_free_security);
983 [ # # ]: 0 : set_to_cap_if_null(ops, inode_init_security);
984 [ # # ]: 0 : set_to_cap_if_null(ops, inode_create);
985 [ # # ]: 0 : set_to_cap_if_null(ops, inode_link);
986 [ # # ]: 0 : set_to_cap_if_null(ops, inode_unlink);
987 [ # # ]: 0 : set_to_cap_if_null(ops, inode_symlink);
988 [ # # ]: 0 : set_to_cap_if_null(ops, inode_mkdir);
989 [ # # ]: 0 : set_to_cap_if_null(ops, inode_rmdir);
990 [ # # ]: 0 : set_to_cap_if_null(ops, inode_mknod);
991 [ # # ]: 0 : set_to_cap_if_null(ops, inode_rename);
992 [ # # ]: 0 : set_to_cap_if_null(ops, inode_readlink);
993 [ # # ]: 0 : set_to_cap_if_null(ops, inode_follow_link);
994 [ # # ]: 0 : set_to_cap_if_null(ops, inode_permission);
995 [ # # ]: 0 : set_to_cap_if_null(ops, inode_setattr);
996 [ # # ]: 0 : set_to_cap_if_null(ops, inode_getattr);
997 [ # # ]: 0 : set_to_cap_if_null(ops, inode_setxattr);
998 [ # # ]: 0 : set_to_cap_if_null(ops, inode_post_setxattr);
999 [ # # ]: 0 : set_to_cap_if_null(ops, inode_getxattr);
1000 [ # # ]: 0 : set_to_cap_if_null(ops, inode_listxattr);
1001 [ # # ]: 0 : set_to_cap_if_null(ops, inode_removexattr);
1002 [ # # ]: 0 : set_to_cap_if_null(ops, inode_need_killpriv);
1003 [ # # ]: 0 : set_to_cap_if_null(ops, inode_killpriv);
1004 [ # # ]: 0 : set_to_cap_if_null(ops, inode_getsecurity);
1005 [ # # ]: 0 : set_to_cap_if_null(ops, inode_setsecurity);
1006 [ # # ]: 0 : set_to_cap_if_null(ops, inode_listsecurity);
1007 [ # # ]: 0 : set_to_cap_if_null(ops, inode_getsecid);
1008 : : #ifdef CONFIG_SECURITY_PATH
1009 [ # # ]: 0 : set_to_cap_if_null(ops, path_mknod);
1010 [ # # ]: 0 : set_to_cap_if_null(ops, path_mkdir);
1011 [ # # ]: 0 : set_to_cap_if_null(ops, path_rmdir);
1012 [ # # ]: 0 : set_to_cap_if_null(ops, path_unlink);
1013 [ # # ]: 0 : set_to_cap_if_null(ops, path_symlink);
1014 [ # # ]: 0 : set_to_cap_if_null(ops, path_link);
1015 [ # # ]: 0 : set_to_cap_if_null(ops, path_rename);
1016 [ # # ]: 0 : set_to_cap_if_null(ops, path_truncate);
1017 [ # # ]: 0 : set_to_cap_if_null(ops, path_chmod);
1018 [ # # ]: 0 : set_to_cap_if_null(ops, path_chown);
1019 [ # # ]: 0 : set_to_cap_if_null(ops, path_chroot);
1020 : : #endif
1021 [ # # ]: 0 : set_to_cap_if_null(ops, file_permission);
1022 [ # # ]: 0 : set_to_cap_if_null(ops, file_alloc_security);
1023 [ # # ]: 0 : set_to_cap_if_null(ops, file_free_security);
1024 [ # # ]: 0 : set_to_cap_if_null(ops, file_ioctl);
1025 [ # # ]: 0 : set_to_cap_if_null(ops, mmap_addr);
1026 [ # # ]: 0 : set_to_cap_if_null(ops, mmap_file);
1027 [ # # ]: 0 : set_to_cap_if_null(ops, file_mprotect);
1028 [ # # ]: 0 : set_to_cap_if_null(ops, file_lock);
1029 [ # # ]: 0 : set_to_cap_if_null(ops, file_fcntl);
1030 [ # # ]: 0 : set_to_cap_if_null(ops, file_set_fowner);
1031 [ # # ]: 0 : set_to_cap_if_null(ops, file_send_sigiotask);
1032 [ # # ]: 0 : set_to_cap_if_null(ops, file_receive);
1033 [ # # ]: 0 : set_to_cap_if_null(ops, file_open);
1034 [ # # ]: 0 : set_to_cap_if_null(ops, task_create);
1035 [ # # ]: 0 : set_to_cap_if_null(ops, task_free);
1036 [ # # ]: 0 : set_to_cap_if_null(ops, cred_alloc_blank);
1037 [ # # ]: 0 : set_to_cap_if_null(ops, cred_free);
1038 [ # # ]: 0 : set_to_cap_if_null(ops, cred_prepare);
1039 [ # # ]: 0 : set_to_cap_if_null(ops, cred_transfer);
1040 [ # # ]: 0 : set_to_cap_if_null(ops, kernel_act_as);
1041 [ # # ]: 0 : set_to_cap_if_null(ops, kernel_create_files_as);
1042 [ # # ]: 0 : set_to_cap_if_null(ops, kernel_module_request);
1043 [ # # ]: 0 : set_to_cap_if_null(ops, kernel_module_from_file);
1044 [ # # ]: 0 : set_to_cap_if_null(ops, task_fix_setuid);
1045 [ # # ]: 0 : set_to_cap_if_null(ops, task_setpgid);
1046 [ # # ]: 0 : set_to_cap_if_null(ops, task_getpgid);
1047 [ # # ]: 0 : set_to_cap_if_null(ops, task_getsid);
1048 [ # # ]: 0 : set_to_cap_if_null(ops, task_getsecid);
1049 [ # # ]: 0 : set_to_cap_if_null(ops, task_setnice);
1050 [ # # ]: 0 : set_to_cap_if_null(ops, task_setioprio);
1051 [ # # ]: 0 : set_to_cap_if_null(ops, task_getioprio);
1052 [ # # ]: 0 : set_to_cap_if_null(ops, task_setrlimit);
1053 [ # # ]: 0 : set_to_cap_if_null(ops, task_setscheduler);
1054 [ # # ]: 0 : set_to_cap_if_null(ops, task_getscheduler);
1055 [ # # ]: 0 : set_to_cap_if_null(ops, task_movememory);
1056 [ # # ]: 0 : set_to_cap_if_null(ops, task_wait);
1057 [ # # ]: 0 : set_to_cap_if_null(ops, task_kill);
1058 [ # # ]: 0 : set_to_cap_if_null(ops, task_prctl);
1059 [ # # ]: 0 : set_to_cap_if_null(ops, task_to_inode);
1060 [ # # ]: 0 : set_to_cap_if_null(ops, ipc_permission);
1061 [ # # ]: 0 : set_to_cap_if_null(ops, ipc_getsecid);
1062 [ # # ]: 0 : set_to_cap_if_null(ops, msg_msg_alloc_security);
1063 [ # # ]: 0 : set_to_cap_if_null(ops, msg_msg_free_security);
1064 [ # # ]: 0 : set_to_cap_if_null(ops, msg_queue_alloc_security);
1065 [ # # ]: 0 : set_to_cap_if_null(ops, msg_queue_free_security);
1066 [ # # ]: 0 : set_to_cap_if_null(ops, msg_queue_associate);
1067 [ # # ]: 0 : set_to_cap_if_null(ops, msg_queue_msgctl);
1068 [ # # ]: 0 : set_to_cap_if_null(ops, msg_queue_msgsnd);
1069 [ # # ]: 0 : set_to_cap_if_null(ops, msg_queue_msgrcv);
1070 [ # # ]: 0 : set_to_cap_if_null(ops, shm_alloc_security);
1071 [ # # ]: 0 : set_to_cap_if_null(ops, shm_free_security);
1072 [ # # ]: 0 : set_to_cap_if_null(ops, shm_associate);
1073 [ # # ]: 0 : set_to_cap_if_null(ops, shm_shmctl);
1074 [ # # ]: 0 : set_to_cap_if_null(ops, shm_shmat);
1075 [ # # ]: 0 : set_to_cap_if_null(ops, sem_alloc_security);
1076 [ # # ]: 0 : set_to_cap_if_null(ops, sem_free_security);
1077 [ # # ]: 0 : set_to_cap_if_null(ops, sem_associate);
1078 [ # # ]: 0 : set_to_cap_if_null(ops, sem_semctl);
1079 [ # # ]: 0 : set_to_cap_if_null(ops, sem_semop);
1080 [ # # ]: 0 : set_to_cap_if_null(ops, netlink_send);
1081 [ # # ]: 0 : set_to_cap_if_null(ops, d_instantiate);
1082 [ # # ]: 0 : set_to_cap_if_null(ops, getprocattr);
1083 [ # # ]: 0 : set_to_cap_if_null(ops, setprocattr);
1084 [ # # ]: 0 : set_to_cap_if_null(ops, ismaclabel);
1085 [ # # ]: 0 : set_to_cap_if_null(ops, secid_to_secctx);
1086 [ # # ]: 0 : set_to_cap_if_null(ops, secctx_to_secid);
1087 [ # # ]: 0 : set_to_cap_if_null(ops, release_secctx);
1088 [ # # ]: 0 : set_to_cap_if_null(ops, inode_notifysecctx);
1089 [ # # ]: 0 : set_to_cap_if_null(ops, inode_setsecctx);
1090 [ # # ]: 0 : set_to_cap_if_null(ops, inode_getsecctx);
1091 : : #ifdef CONFIG_SECURITY_NETWORK
1092 [ # # ]: 0 : set_to_cap_if_null(ops, unix_stream_connect);
1093 [ # # ]: 0 : set_to_cap_if_null(ops, unix_may_send);
1094 [ # # ]: 0 : set_to_cap_if_null(ops, socket_create);
1095 [ # # ]: 0 : set_to_cap_if_null(ops, socket_post_create);
1096 [ # # ]: 0 : set_to_cap_if_null(ops, socket_bind);
1097 [ # # ]: 0 : set_to_cap_if_null(ops, socket_connect);
1098 [ # # ]: 0 : set_to_cap_if_null(ops, socket_listen);
1099 [ # # ]: 0 : set_to_cap_if_null(ops, socket_accept);
1100 [ # # ]: 0 : set_to_cap_if_null(ops, socket_sendmsg);
1101 [ # # ]: 0 : set_to_cap_if_null(ops, socket_recvmsg);
1102 [ # # ]: 0 : set_to_cap_if_null(ops, socket_getsockname);
1103 [ # # ]: 0 : set_to_cap_if_null(ops, socket_getpeername);
1104 [ # # ]: 0 : set_to_cap_if_null(ops, socket_setsockopt);
1105 [ # # ]: 0 : set_to_cap_if_null(ops, socket_getsockopt);
1106 [ # # ]: 0 : set_to_cap_if_null(ops, socket_shutdown);
1107 [ # # ]: 0 : set_to_cap_if_null(ops, socket_sock_rcv_skb);
1108 [ # # ]: 0 : set_to_cap_if_null(ops, socket_getpeersec_stream);
1109 [ # # ]: 0 : set_to_cap_if_null(ops, socket_getpeersec_dgram);
1110 [ # # ]: 0 : set_to_cap_if_null(ops, sk_alloc_security);
1111 [ # # ]: 0 : set_to_cap_if_null(ops, sk_free_security);
1112 [ # # ]: 0 : set_to_cap_if_null(ops, sk_clone_security);
1113 [ # # ]: 0 : set_to_cap_if_null(ops, sk_getsecid);
1114 [ # # ]: 0 : set_to_cap_if_null(ops, sock_graft);
1115 [ # # ]: 0 : set_to_cap_if_null(ops, inet_conn_request);
1116 [ # # ]: 0 : set_to_cap_if_null(ops, inet_csk_clone);
1117 [ # # ]: 0 : set_to_cap_if_null(ops, inet_conn_established);
1118 [ # # ]: 0 : set_to_cap_if_null(ops, secmark_relabel_packet);
1119 [ # # ]: 0 : set_to_cap_if_null(ops, secmark_refcount_inc);
1120 [ # # ]: 0 : set_to_cap_if_null(ops, secmark_refcount_dec);
1121 [ # # ]: 0 : set_to_cap_if_null(ops, req_classify_flow);
1122 [ # # ]: 0 : set_to_cap_if_null(ops, tun_dev_alloc_security);
1123 [ # # ]: 0 : set_to_cap_if_null(ops, tun_dev_free_security);
1124 [ # # ]: 0 : set_to_cap_if_null(ops, tun_dev_create);
1125 [ # # ]: 0 : set_to_cap_if_null(ops, tun_dev_open);
1126 [ # # ]: 0 : set_to_cap_if_null(ops, tun_dev_attach_queue);
1127 [ # # ]: 0 : set_to_cap_if_null(ops, tun_dev_attach);
1128 [ # # ]: 0 : set_to_cap_if_null(ops, skb_owned_by);
1129 : : #endif /* CONFIG_SECURITY_NETWORK */
1130 : : #ifdef CONFIG_SECURITY_NETWORK_XFRM
1131 : : set_to_cap_if_null(ops, xfrm_policy_alloc_security);
1132 : : set_to_cap_if_null(ops, xfrm_policy_clone_security);
1133 : : set_to_cap_if_null(ops, xfrm_policy_free_security);
1134 : : set_to_cap_if_null(ops, xfrm_policy_delete_security);
1135 : : set_to_cap_if_null(ops, xfrm_state_alloc);
1136 : : set_to_cap_if_null(ops, xfrm_state_alloc_acquire);
1137 : : set_to_cap_if_null(ops, xfrm_state_free_security);
1138 : : set_to_cap_if_null(ops, xfrm_state_delete_security);
1139 : : set_to_cap_if_null(ops, xfrm_policy_lookup);
1140 : : set_to_cap_if_null(ops, xfrm_state_pol_flow_match);
1141 : : set_to_cap_if_null(ops, xfrm_decode_session);
1142 : : #endif /* CONFIG_SECURITY_NETWORK_XFRM */
1143 : : #ifdef CONFIG_KEYS
1144 [ # # ]: 0 : set_to_cap_if_null(ops, key_alloc);
1145 [ # # ]: 0 : set_to_cap_if_null(ops, key_free);
1146 [ # # ]: 0 : set_to_cap_if_null(ops, key_permission);
1147 [ # # ]: 0 : set_to_cap_if_null(ops, key_getsecurity);
1148 : : #endif /* CONFIG_KEYS */
1149 : : #ifdef CONFIG_AUDIT
1150 [ # # ]: 0 : set_to_cap_if_null(ops, audit_rule_init);
1151 [ # # ]: 0 : set_to_cap_if_null(ops, audit_rule_known);
1152 [ # # ]: 0 : set_to_cap_if_null(ops, audit_rule_match);
1153 [ # # ]: 0 : set_to_cap_if_null(ops, audit_rule_free);
1154 : : #endif
1155 : 0 : }
|