~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/security/capability.c

Version: ~ [ linux-5.2 ] ~ [ linux-5.1.16 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.57 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.132 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.184 ] ~ [ linux-4.8.17 ] ~ [ linux-4.7.10 ] ~ [ linux-4.6.7 ] ~ [ linux-4.5.7 ] ~ [ linux-4.4.184 ] ~ [ linux-4.3.6 ] ~ [ linux-4.2.8 ] ~ [ linux-4.1.52 ] ~ [ linux-4.0.9 ] ~ [ linux-3.19.8 ] ~ [ linux-3.18.140 ] ~ [ linux-3.17.8 ] ~ [ linux-3.16.69 ] ~ [ linux-3.15.10 ] ~ [ linux-3.14.79 ] ~ [ linux-3.13.11 ] ~ [ linux-3.12.74 ] ~ [ linux-3.11.10 ] ~ [ linux-3.10.108 ] ~ [ linux-3.9.11 ] ~ [ linux-3.8.13 ] ~ [ linux-3.7.10 ] ~ [ linux-3.6.11 ] ~ [ linux-3.5.7 ] ~ [ linux-3.4.113 ] ~ [ linux-3.3.8 ] ~ [ linux-3.2.102 ] ~ [ linux-3.1.10 ] ~ [ linux-3.0.101 ] ~ [ linux-2.6.39.4 ] ~ [ linux-2.6.38.8 ] ~ [ linux-2.6.37.6 ] ~ [ linux-2.6.36.4 ] ~ [ linux-2.6.35.14 ] ~ [ linux-2.6.34.15 ] ~ [ linux-2.6.33.20 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.5 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

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

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | Wiki (Japanese) | Wiki (English) | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

osdn.jp