OpenCores
URL https://opencores.org/ocsvn/test_project/test_project/trunk

Subversion Repositories test_project

[/] [test_project/] [trunk/] [linux_sd_driver/] [security/] [dummy.c] - Blame information for rev 81

Go to most recent revision | Details | Compare with Previous | View Log

Line No. Rev Author Line
1 62 marcus.erl
/*
2
 * Stub functions for the default security function pointers in case no
3
 * security model is loaded.
4
 *
5
 * Copyright (C) 2001 WireX Communications, Inc <chris@wirex.com>
6
 * Copyright (C) 2001-2002  Greg Kroah-Hartman <greg@kroah.com>
7
 * Copyright (C) 2001 Networks Associates Technology, Inc <ssmalley@nai.com>
8
 *
9
 *      This program is free software; you can redistribute it and/or modify
10
 *      it under the terms of the GNU General Public License as published by
11
 *      the Free Software Foundation; either version 2 of the License, or
12
 *      (at your option) any later version.
13
 */
14
 
15
#undef DEBUG
16
 
17
#include <linux/capability.h>
18
#include <linux/kernel.h>
19
#include <linux/mman.h>
20
#include <linux/pagemap.h>
21
#include <linux/swap.h>
22
#include <linux/security.h>
23
#include <linux/skbuff.h>
24
#include <linux/netlink.h>
25
#include <net/sock.h>
26
#include <linux/xattr.h>
27
#include <linux/hugetlb.h>
28
#include <linux/ptrace.h>
29
#include <linux/file.h>
30
 
31
static int dummy_ptrace (struct task_struct *parent, struct task_struct *child)
32
{
33
        return 0;
34
}
35
 
36
static int dummy_capget (struct task_struct *target, kernel_cap_t * effective,
37
                         kernel_cap_t * inheritable, kernel_cap_t * permitted)
38
{
39
        *effective = *inheritable = *permitted = 0;
40
        if (target->euid == 0) {
41
                *permitted |= (~0 & ~CAP_FS_MASK);
42
                *effective |= (~0 & ~CAP_TO_MASK(CAP_SETPCAP) & ~CAP_FS_MASK);
43
        }
44
        if (target->fsuid == 0) {
45
                *permitted |= CAP_FS_MASK;
46
                *effective |= CAP_FS_MASK;
47
        }
48
        return 0;
49
}
50
 
51
static int dummy_capset_check (struct task_struct *target,
52
                               kernel_cap_t * effective,
53
                               kernel_cap_t * inheritable,
54
                               kernel_cap_t * permitted)
55
{
56
        return -EPERM;
57
}
58
 
59
static void dummy_capset_set (struct task_struct *target,
60
                              kernel_cap_t * effective,
61
                              kernel_cap_t * inheritable,
62
                              kernel_cap_t * permitted)
63
{
64
        return;
65
}
66
 
67
static int dummy_acct (struct file *file)
68
{
69
        return 0;
70
}
71
 
72
static int dummy_capable (struct task_struct *tsk, int cap)
73
{
74
        if (cap_raised (tsk->cap_effective, cap))
75
                return 0;
76
        return -EPERM;
77
}
78
 
79
static int dummy_sysctl (ctl_table * table, int op)
80
{
81
        return 0;
82
}
83
 
84
static int dummy_quotactl (int cmds, int type, int id, struct super_block *sb)
85
{
86
        return 0;
87
}
88
 
89
static int dummy_quota_on (struct dentry *dentry)
90
{
91
        return 0;
92
}
93
 
94
static int dummy_syslog (int type)
95
{
96
        if ((type != 3 && type != 10) && current->euid)
97
                return -EPERM;
98
        return 0;
99
}
100
 
101
static int dummy_settime(struct timespec *ts, struct timezone *tz)
102
{
103
        if (!capable(CAP_SYS_TIME))
104
                return -EPERM;
105
        return 0;
106
}
107
 
108
static int dummy_vm_enough_memory(struct mm_struct *mm, long pages)
109
{
110
        int cap_sys_admin = 0;
111
 
112
        if (dummy_capable(current, CAP_SYS_ADMIN) == 0)
113
                cap_sys_admin = 1;
114
        return __vm_enough_memory(mm, pages, cap_sys_admin);
115
}
116
 
117
static int dummy_bprm_alloc_security (struct linux_binprm *bprm)
118
{
119
        return 0;
120
}
121
 
122
static void dummy_bprm_free_security (struct linux_binprm *bprm)
123
{
124
        return;
125
}
126
 
127
static void dummy_bprm_apply_creds (struct linux_binprm *bprm, int unsafe)
128
{
129
        if (bprm->e_uid != current->uid || bprm->e_gid != current->gid) {
130
                set_dumpable(current->mm, suid_dumpable);
131
 
132
                if ((unsafe & ~LSM_UNSAFE_PTRACE_CAP) && !capable(CAP_SETUID)) {
133
                        bprm->e_uid = current->uid;
134
                        bprm->e_gid = current->gid;
135
                }
136
        }
137
 
138
        current->suid = current->euid = current->fsuid = bprm->e_uid;
139
        current->sgid = current->egid = current->fsgid = bprm->e_gid;
140
 
141
        dummy_capget(current, &current->cap_effective, &current->cap_inheritable, &current->cap_permitted);
142
}
143
 
144
static void dummy_bprm_post_apply_creds (struct linux_binprm *bprm)
145
{
146
        return;
147
}
148
 
149
static int dummy_bprm_set_security (struct linux_binprm *bprm)
150
{
151
        return 0;
152
}
153
 
154
static int dummy_bprm_check_security (struct linux_binprm *bprm)
155
{
156
        return 0;
157
}
158
 
159
static int dummy_bprm_secureexec (struct linux_binprm *bprm)
160
{
161
        /* The new userland will simply use the value provided
162
           in the AT_SECURE field to decide whether secure mode
163
           is required.  Hence, this logic is required to preserve
164
           the legacy decision algorithm used by the old userland. */
165
        return (current->euid != current->uid ||
166
                current->egid != current->gid);
167
}
168
 
169
static int dummy_sb_alloc_security (struct super_block *sb)
170
{
171
        return 0;
172
}
173
 
174
static void dummy_sb_free_security (struct super_block *sb)
175
{
176
        return;
177
}
178
 
179
static int dummy_sb_copy_data (struct file_system_type *type,
180
                               void *orig, void *copy)
181
{
182
        return 0;
183
}
184
 
185
static int dummy_sb_kern_mount (struct super_block *sb, void *data)
186
{
187
        return 0;
188
}
189
 
190
static int dummy_sb_statfs (struct dentry *dentry)
191
{
192
        return 0;
193
}
194
 
195
static int dummy_sb_mount (char *dev_name, struct nameidata *nd, char *type,
196
                           unsigned long flags, void *data)
197
{
198
        return 0;
199
}
200
 
201
static int dummy_sb_check_sb (struct vfsmount *mnt, struct nameidata *nd)
202
{
203
        return 0;
204
}
205
 
206
static int dummy_sb_umount (struct vfsmount *mnt, int flags)
207
{
208
        return 0;
209
}
210
 
211
static void dummy_sb_umount_close (struct vfsmount *mnt)
212
{
213
        return;
214
}
215
 
216
static void dummy_sb_umount_busy (struct vfsmount *mnt)
217
{
218
        return;
219
}
220
 
221
static void dummy_sb_post_remount (struct vfsmount *mnt, unsigned long flags,
222
                                   void *data)
223
{
224
        return;
225
}
226
 
227
 
228
static void dummy_sb_post_mountroot (void)
229
{
230
        return;
231
}
232
 
233
static void dummy_sb_post_addmount (struct vfsmount *mnt, struct nameidata *nd)
234
{
235
        return;
236
}
237
 
238
static int dummy_sb_pivotroot (struct nameidata *old_nd, struct nameidata *new_nd)
239
{
240
        return 0;
241
}
242
 
243
static void dummy_sb_post_pivotroot (struct nameidata *old_nd, struct nameidata *new_nd)
244
{
245
        return;
246
}
247
 
248
static int dummy_inode_alloc_security (struct inode *inode)
249
{
250
        return 0;
251
}
252
 
253
static void dummy_inode_free_security (struct inode *inode)
254
{
255
        return;
256
}
257
 
258
static int dummy_inode_init_security (struct inode *inode, struct inode *dir,
259
                                      char **name, void **value, size_t *len)
260
{
261
        return -EOPNOTSUPP;
262
}
263
 
264
static int dummy_inode_create (struct inode *inode, struct dentry *dentry,
265
                               int mask)
266
{
267
        return 0;
268
}
269
 
270
static int dummy_inode_link (struct dentry *old_dentry, struct inode *inode,
271
                             struct dentry *new_dentry)
272
{
273
        return 0;
274
}
275
 
276
static int dummy_inode_unlink (struct inode *inode, struct dentry *dentry)
277
{
278
        return 0;
279
}
280
 
281
static int dummy_inode_symlink (struct inode *inode, struct dentry *dentry,
282
                                const char *name)
283
{
284
        return 0;
285
}
286
 
287
static int dummy_inode_mkdir (struct inode *inode, struct dentry *dentry,
288
                              int mask)
289
{
290
        return 0;
291
}
292
 
293
static int dummy_inode_rmdir (struct inode *inode, struct dentry *dentry)
294
{
295
        return 0;
296
}
297
 
298
static int dummy_inode_mknod (struct inode *inode, struct dentry *dentry,
299
                              int mode, dev_t dev)
300
{
301
        return 0;
302
}
303
 
304
static int dummy_inode_rename (struct inode *old_inode,
305
                               struct dentry *old_dentry,
306
                               struct inode *new_inode,
307
                               struct dentry *new_dentry)
308
{
309
        return 0;
310
}
311
 
312
static int dummy_inode_readlink (struct dentry *dentry)
313
{
314
        return 0;
315
}
316
 
317
static int dummy_inode_follow_link (struct dentry *dentry,
318
                                    struct nameidata *nameidata)
319
{
320
        return 0;
321
}
322
 
323
static int dummy_inode_permission (struct inode *inode, int mask, struct nameidata *nd)
324
{
325
        return 0;
326
}
327
 
328
static int dummy_inode_setattr (struct dentry *dentry, struct iattr *iattr)
329
{
330
        return 0;
331
}
332
 
333
static int dummy_inode_getattr (struct vfsmount *mnt, struct dentry *dentry)
334
{
335
        return 0;
336
}
337
 
338
static void dummy_inode_delete (struct inode *ino)
339
{
340
        return;
341
}
342
 
343
static int dummy_inode_setxattr (struct dentry *dentry, char *name, void *value,
344
                                size_t size, int flags)
345
{
346
        if (!strncmp(name, XATTR_SECURITY_PREFIX,
347
                     sizeof(XATTR_SECURITY_PREFIX) - 1) &&
348
            !capable(CAP_SYS_ADMIN))
349
                return -EPERM;
350
        return 0;
351
}
352
 
353
static void dummy_inode_post_setxattr (struct dentry *dentry, char *name, void *value,
354
                                       size_t size, int flags)
355
{
356
}
357
 
358
static int dummy_inode_getxattr (struct dentry *dentry, char *name)
359
{
360
        return 0;
361
}
362
 
363
static int dummy_inode_listxattr (struct dentry *dentry)
364
{
365
        return 0;
366
}
367
 
368
static int dummy_inode_removexattr (struct dentry *dentry, char *name)
369
{
370
        if (!strncmp(name, XATTR_SECURITY_PREFIX,
371
                     sizeof(XATTR_SECURITY_PREFIX) - 1) &&
372
            !capable(CAP_SYS_ADMIN))
373
                return -EPERM;
374
        return 0;
375
}
376
 
377
static int dummy_inode_need_killpriv(struct dentry *dentry)
378
{
379
        return 0;
380
}
381
 
382
static int dummy_inode_killpriv(struct dentry *dentry)
383
{
384
        return 0;
385
}
386
 
387
static int dummy_inode_getsecurity(const struct inode *inode, const char *name, void *buffer, size_t size, int err)
388
{
389
        return -EOPNOTSUPP;
390
}
391
 
392
static int dummy_inode_setsecurity(struct inode *inode, const char *name, const void *value, size_t size, int flags)
393
{
394
        return -EOPNOTSUPP;
395
}
396
 
397
static int dummy_inode_listsecurity(struct inode *inode, char *buffer, size_t buffer_size)
398
{
399
        return 0;
400
}
401
 
402
static int dummy_file_permission (struct file *file, int mask)
403
{
404
        return 0;
405
}
406
 
407
static int dummy_file_alloc_security (struct file *file)
408
{
409
        return 0;
410
}
411
 
412
static void dummy_file_free_security (struct file *file)
413
{
414
        return;
415
}
416
 
417
static int dummy_file_ioctl (struct file *file, unsigned int command,
418
                             unsigned long arg)
419
{
420
        return 0;
421
}
422
 
423
static int dummy_file_mmap (struct file *file, unsigned long reqprot,
424
                            unsigned long prot,
425
                            unsigned long flags,
426
                            unsigned long addr,
427
                            unsigned long addr_only)
428
{
429
        if ((addr < mmap_min_addr) && !capable(CAP_SYS_RAWIO))
430
                return -EACCES;
431
        return 0;
432
}
433
 
434
static int dummy_file_mprotect (struct vm_area_struct *vma,
435
                                unsigned long reqprot,
436
                                unsigned long prot)
437
{
438
        return 0;
439
}
440
 
441
static int dummy_file_lock (struct file *file, unsigned int cmd)
442
{
443
        return 0;
444
}
445
 
446
static int dummy_file_fcntl (struct file *file, unsigned int cmd,
447
                             unsigned long arg)
448
{
449
        return 0;
450
}
451
 
452
static int dummy_file_set_fowner (struct file *file)
453
{
454
        return 0;
455
}
456
 
457
static int dummy_file_send_sigiotask (struct task_struct *tsk,
458
                                      struct fown_struct *fown, int sig)
459
{
460
        return 0;
461
}
462
 
463
static int dummy_file_receive (struct file *file)
464
{
465
        return 0;
466
}
467
 
468
static int dummy_dentry_open (struct file *file)
469
{
470
        return 0;
471
}
472
 
473
static int dummy_task_create (unsigned long clone_flags)
474
{
475
        return 0;
476
}
477
 
478
static int dummy_task_alloc_security (struct task_struct *p)
479
{
480
        return 0;
481
}
482
 
483
static void dummy_task_free_security (struct task_struct *p)
484
{
485
        return;
486
}
487
 
488
static int dummy_task_setuid (uid_t id0, uid_t id1, uid_t id2, int flags)
489
{
490
        return 0;
491
}
492
 
493
static int dummy_task_post_setuid (uid_t id0, uid_t id1, uid_t id2, int flags)
494
{
495
        dummy_capget(current, &current->cap_effective, &current->cap_inheritable, &current->cap_permitted);
496
        return 0;
497
}
498
 
499
static int dummy_task_setgid (gid_t id0, gid_t id1, gid_t id2, int flags)
500
{
501
        return 0;
502
}
503
 
504
static int dummy_task_setpgid (struct task_struct *p, pid_t pgid)
505
{
506
        return 0;
507
}
508
 
509
static int dummy_task_getpgid (struct task_struct *p)
510
{
511
        return 0;
512
}
513
 
514
static int dummy_task_getsid (struct task_struct *p)
515
{
516
        return 0;
517
}
518
 
519
static void dummy_task_getsecid (struct task_struct *p, u32 *secid)
520
{ }
521
 
522
static int dummy_task_setgroups (struct group_info *group_info)
523
{
524
        return 0;
525
}
526
 
527
static int dummy_task_setnice (struct task_struct *p, int nice)
528
{
529
        return 0;
530
}
531
 
532
static int dummy_task_setioprio (struct task_struct *p, int ioprio)
533
{
534
        return 0;
535
}
536
 
537
static int dummy_task_getioprio (struct task_struct *p)
538
{
539
        return 0;
540
}
541
 
542
static int dummy_task_setrlimit (unsigned int resource, struct rlimit *new_rlim)
543
{
544
        return 0;
545
}
546
 
547
static int dummy_task_setscheduler (struct task_struct *p, int policy,
548
                                    struct sched_param *lp)
549
{
550
        return 0;
551
}
552
 
553
static int dummy_task_getscheduler (struct task_struct *p)
554
{
555
        return 0;
556
}
557
 
558
static int dummy_task_movememory (struct task_struct *p)
559
{
560
        return 0;
561
}
562
 
563
static int dummy_task_wait (struct task_struct *p)
564
{
565
        return 0;
566
}
567
 
568
static int dummy_task_kill (struct task_struct *p, struct siginfo *info,
569
                            int sig, u32 secid)
570
{
571
        return 0;
572
}
573
 
574
static int dummy_task_prctl (int option, unsigned long arg2, unsigned long arg3,
575
                             unsigned long arg4, unsigned long arg5)
576
{
577
        return 0;
578
}
579
 
580
static void dummy_task_reparent_to_init (struct task_struct *p)
581
{
582
        p->euid = p->fsuid = 0;
583
        return;
584
}
585
 
586
static void dummy_task_to_inode(struct task_struct *p, struct inode *inode)
587
{ }
588
 
589
static int dummy_ipc_permission (struct kern_ipc_perm *ipcp, short flag)
590
{
591
        return 0;
592
}
593
 
594
static int dummy_msg_msg_alloc_security (struct msg_msg *msg)
595
{
596
        return 0;
597
}
598
 
599
static void dummy_msg_msg_free_security (struct msg_msg *msg)
600
{
601
        return;
602
}
603
 
604
static int dummy_msg_queue_alloc_security (struct msg_queue *msq)
605
{
606
        return 0;
607
}
608
 
609
static void dummy_msg_queue_free_security (struct msg_queue *msq)
610
{
611
        return;
612
}
613
 
614
static int dummy_msg_queue_associate (struct msg_queue *msq,
615
                                      int msqflg)
616
{
617
        return 0;
618
}
619
 
620
static int dummy_msg_queue_msgctl (struct msg_queue *msq, int cmd)
621
{
622
        return 0;
623
}
624
 
625
static int dummy_msg_queue_msgsnd (struct msg_queue *msq, struct msg_msg *msg,
626
                                   int msgflg)
627
{
628
        return 0;
629
}
630
 
631
static int dummy_msg_queue_msgrcv (struct msg_queue *msq, struct msg_msg *msg,
632
                                   struct task_struct *target, long type,
633
                                   int mode)
634
{
635
        return 0;
636
}
637
 
638
static int dummy_shm_alloc_security (struct shmid_kernel *shp)
639
{
640
        return 0;
641
}
642
 
643
static void dummy_shm_free_security (struct shmid_kernel *shp)
644
{
645
        return;
646
}
647
 
648
static int dummy_shm_associate (struct shmid_kernel *shp, int shmflg)
649
{
650
        return 0;
651
}
652
 
653
static int dummy_shm_shmctl (struct shmid_kernel *shp, int cmd)
654
{
655
        return 0;
656
}
657
 
658
static int dummy_shm_shmat (struct shmid_kernel *shp, char __user *shmaddr,
659
                            int shmflg)
660
{
661
        return 0;
662
}
663
 
664
static int dummy_sem_alloc_security (struct sem_array *sma)
665
{
666
        return 0;
667
}
668
 
669
static void dummy_sem_free_security (struct sem_array *sma)
670
{
671
        return;
672
}
673
 
674
static int dummy_sem_associate (struct sem_array *sma, int semflg)
675
{
676
        return 0;
677
}
678
 
679
static int dummy_sem_semctl (struct sem_array *sma, int cmd)
680
{
681
        return 0;
682
}
683
 
684
static int dummy_sem_semop (struct sem_array *sma,
685
                            struct sembuf *sops, unsigned nsops, int alter)
686
{
687
        return 0;
688
}
689
 
690
static int dummy_netlink_send (struct sock *sk, struct sk_buff *skb)
691
{
692
        NETLINK_CB(skb).eff_cap = current->cap_effective;
693
        return 0;
694
}
695
 
696
static int dummy_netlink_recv (struct sk_buff *skb, int cap)
697
{
698
        if (!cap_raised (NETLINK_CB (skb).eff_cap, cap))
699
                return -EPERM;
700
        return 0;
701
}
702
 
703
#ifdef CONFIG_SECURITY_NETWORK
704
static int dummy_unix_stream_connect (struct socket *sock,
705
                                      struct socket *other,
706
                                      struct sock *newsk)
707
{
708
        return 0;
709
}
710
 
711
static int dummy_unix_may_send (struct socket *sock,
712
                                struct socket *other)
713
{
714
        return 0;
715
}
716
 
717
static int dummy_socket_create (int family, int type,
718
                                int protocol, int kern)
719
{
720
        return 0;
721
}
722
 
723
static int dummy_socket_post_create (struct socket *sock, int family, int type,
724
                                     int protocol, int kern)
725
{
726
        return 0;
727
}
728
 
729
static int dummy_socket_bind (struct socket *sock, struct sockaddr *address,
730
                              int addrlen)
731
{
732
        return 0;
733
}
734
 
735
static int dummy_socket_connect (struct socket *sock, struct sockaddr *address,
736
                                 int addrlen)
737
{
738
        return 0;
739
}
740
 
741
static int dummy_socket_listen (struct socket *sock, int backlog)
742
{
743
        return 0;
744
}
745
 
746
static int dummy_socket_accept (struct socket *sock, struct socket *newsock)
747
{
748
        return 0;
749
}
750
 
751
static void dummy_socket_post_accept (struct socket *sock,
752
                                      struct socket *newsock)
753
{
754
        return;
755
}
756
 
757
static int dummy_socket_sendmsg (struct socket *sock, struct msghdr *msg,
758
                                 int size)
759
{
760
        return 0;
761
}
762
 
763
static int dummy_socket_recvmsg (struct socket *sock, struct msghdr *msg,
764
                                 int size, int flags)
765
{
766
        return 0;
767
}
768
 
769
static int dummy_socket_getsockname (struct socket *sock)
770
{
771
        return 0;
772
}
773
 
774
static int dummy_socket_getpeername (struct socket *sock)
775
{
776
        return 0;
777
}
778
 
779
static int dummy_socket_setsockopt (struct socket *sock, int level, int optname)
780
{
781
        return 0;
782
}
783
 
784
static int dummy_socket_getsockopt (struct socket *sock, int level, int optname)
785
{
786
        return 0;
787
}
788
 
789
static int dummy_socket_shutdown (struct socket *sock, int how)
790
{
791
        return 0;
792
}
793
 
794
static int dummy_socket_sock_rcv_skb (struct sock *sk, struct sk_buff *skb)
795
{
796
        return 0;
797
}
798
 
799
static int dummy_socket_getpeersec_stream(struct socket *sock, char __user *optval,
800
                                          int __user *optlen, unsigned len)
801
{
802
        return -ENOPROTOOPT;
803
}
804
 
805
static int dummy_socket_getpeersec_dgram(struct socket *sock, struct sk_buff *skb, u32 *secid)
806
{
807
        return -ENOPROTOOPT;
808
}
809
 
810
static inline int dummy_sk_alloc_security (struct sock *sk, int family, gfp_t priority)
811
{
812
        return 0;
813
}
814
 
815
static inline void dummy_sk_free_security (struct sock *sk)
816
{
817
}
818
 
819
static inline void dummy_sk_clone_security (const struct sock *sk, struct sock *newsk)
820
{
821
}
822
 
823
static inline void dummy_sk_getsecid(struct sock *sk, u32 *secid)
824
{
825
}
826
 
827
static inline void dummy_sock_graft(struct sock* sk, struct socket *parent)
828
{
829
}
830
 
831
static inline int dummy_inet_conn_request(struct sock *sk,
832
                        struct sk_buff *skb, struct request_sock *req)
833
{
834
        return 0;
835
}
836
 
837
static inline void dummy_inet_csk_clone(struct sock *newsk,
838
                        const struct request_sock *req)
839
{
840
}
841
 
842
static inline void dummy_inet_conn_established(struct sock *sk,
843
                        struct sk_buff *skb)
844
{
845
}
846
 
847
static inline void dummy_req_classify_flow(const struct request_sock *req,
848
                        struct flowi *fl)
849
{
850
}
851
#endif  /* CONFIG_SECURITY_NETWORK */
852
 
853
#ifdef CONFIG_SECURITY_NETWORK_XFRM
854
static int dummy_xfrm_policy_alloc_security(struct xfrm_policy *xp,
855
                struct xfrm_user_sec_ctx *sec_ctx)
856
{
857
        return 0;
858
}
859
 
860
static inline int dummy_xfrm_policy_clone_security(struct xfrm_policy *old, struct xfrm_policy *new)
861
{
862
        return 0;
863
}
864
 
865
static void dummy_xfrm_policy_free_security(struct xfrm_policy *xp)
866
{
867
}
868
 
869
static int dummy_xfrm_policy_delete_security(struct xfrm_policy *xp)
870
{
871
        return 0;
872
}
873
 
874
static int dummy_xfrm_state_alloc_security(struct xfrm_state *x,
875
        struct xfrm_user_sec_ctx *sec_ctx, u32 secid)
876
{
877
        return 0;
878
}
879
 
880
static void dummy_xfrm_state_free_security(struct xfrm_state *x)
881
{
882
}
883
 
884
static int dummy_xfrm_state_delete_security(struct xfrm_state *x)
885
{
886
        return 0;
887
}
888
 
889
static int dummy_xfrm_policy_lookup(struct xfrm_policy *xp, u32 sk_sid, u8 dir)
890
{
891
        return 0;
892
}
893
 
894
static int dummy_xfrm_state_pol_flow_match(struct xfrm_state *x,
895
                                struct xfrm_policy *xp, struct flowi *fl)
896
{
897
        return 1;
898
}
899
 
900
static int dummy_xfrm_decode_session(struct sk_buff *skb, u32 *fl, int ckall)
901
{
902
        return 0;
903
}
904
 
905
#endif /* CONFIG_SECURITY_NETWORK_XFRM */
906
static int dummy_register_security (const char *name, struct security_operations *ops)
907
{
908
        return -EINVAL;
909
}
910
 
911
static void dummy_d_instantiate (struct dentry *dentry, struct inode *inode)
912
{
913
        return;
914
}
915
 
916
static int dummy_getprocattr(struct task_struct *p, char *name, char **value)
917
{
918
        return -EINVAL;
919
}
920
 
921
static int dummy_setprocattr(struct task_struct *p, char *name, void *value, size_t size)
922
{
923
        return -EINVAL;
924
}
925
 
926
static int dummy_secid_to_secctx(u32 secid, char **secdata, u32 *seclen)
927
{
928
        return -EOPNOTSUPP;
929
}
930
 
931
static void dummy_release_secctx(char *secdata, u32 seclen)
932
{
933
}
934
 
935
#ifdef CONFIG_KEYS
936
static inline int dummy_key_alloc(struct key *key, struct task_struct *ctx,
937
                                  unsigned long flags)
938
{
939
        return 0;
940
}
941
 
942
static inline void dummy_key_free(struct key *key)
943
{
944
}
945
 
946
static inline int dummy_key_permission(key_ref_t key_ref,
947
                                       struct task_struct *context,
948
                                       key_perm_t perm)
949
{
950
        return 0;
951
}
952
#endif /* CONFIG_KEYS */
953
 
954
struct security_operations dummy_security_ops;
955
 
956
#define set_to_dummy_if_null(ops, function)                             \
957
        do {                                                            \
958
                if (!ops->function) {                                   \
959
                        ops->function = dummy_##function;               \
960
                        pr_debug("Had to override the " #function       \
961
                                 " security operation with the dummy one.\n");\
962
                        }                                               \
963
        } while (0)
964
 
965
void security_fixup_ops (struct security_operations *ops)
966
{
967
        set_to_dummy_if_null(ops, ptrace);
968
        set_to_dummy_if_null(ops, capget);
969
        set_to_dummy_if_null(ops, capset_check);
970
        set_to_dummy_if_null(ops, capset_set);
971
        set_to_dummy_if_null(ops, acct);
972
        set_to_dummy_if_null(ops, capable);
973
        set_to_dummy_if_null(ops, quotactl);
974
        set_to_dummy_if_null(ops, quota_on);
975
        set_to_dummy_if_null(ops, sysctl);
976
        set_to_dummy_if_null(ops, syslog);
977
        set_to_dummy_if_null(ops, settime);
978
        set_to_dummy_if_null(ops, vm_enough_memory);
979
        set_to_dummy_if_null(ops, bprm_alloc_security);
980
        set_to_dummy_if_null(ops, bprm_free_security);
981
        set_to_dummy_if_null(ops, bprm_apply_creds);
982
        set_to_dummy_if_null(ops, bprm_post_apply_creds);
983
        set_to_dummy_if_null(ops, bprm_set_security);
984
        set_to_dummy_if_null(ops, bprm_check_security);
985
        set_to_dummy_if_null(ops, bprm_secureexec);
986
        set_to_dummy_if_null(ops, sb_alloc_security);
987
        set_to_dummy_if_null(ops, sb_free_security);
988
        set_to_dummy_if_null(ops, sb_copy_data);
989
        set_to_dummy_if_null(ops, sb_kern_mount);
990
        set_to_dummy_if_null(ops, sb_statfs);
991
        set_to_dummy_if_null(ops, sb_mount);
992
        set_to_dummy_if_null(ops, sb_check_sb);
993
        set_to_dummy_if_null(ops, sb_umount);
994
        set_to_dummy_if_null(ops, sb_umount_close);
995
        set_to_dummy_if_null(ops, sb_umount_busy);
996
        set_to_dummy_if_null(ops, sb_post_remount);
997
        set_to_dummy_if_null(ops, sb_post_mountroot);
998
        set_to_dummy_if_null(ops, sb_post_addmount);
999
        set_to_dummy_if_null(ops, sb_pivotroot);
1000
        set_to_dummy_if_null(ops, sb_post_pivotroot);
1001
        set_to_dummy_if_null(ops, inode_alloc_security);
1002
        set_to_dummy_if_null(ops, inode_free_security);
1003
        set_to_dummy_if_null(ops, inode_init_security);
1004
        set_to_dummy_if_null(ops, inode_create);
1005
        set_to_dummy_if_null(ops, inode_link);
1006
        set_to_dummy_if_null(ops, inode_unlink);
1007
        set_to_dummy_if_null(ops, inode_symlink);
1008
        set_to_dummy_if_null(ops, inode_mkdir);
1009
        set_to_dummy_if_null(ops, inode_rmdir);
1010
        set_to_dummy_if_null(ops, inode_mknod);
1011
        set_to_dummy_if_null(ops, inode_rename);
1012
        set_to_dummy_if_null(ops, inode_readlink);
1013
        set_to_dummy_if_null(ops, inode_follow_link);
1014
        set_to_dummy_if_null(ops, inode_permission);
1015
        set_to_dummy_if_null(ops, inode_setattr);
1016
        set_to_dummy_if_null(ops, inode_getattr);
1017
        set_to_dummy_if_null(ops, inode_delete);
1018
        set_to_dummy_if_null(ops, inode_setxattr);
1019
        set_to_dummy_if_null(ops, inode_post_setxattr);
1020
        set_to_dummy_if_null(ops, inode_getxattr);
1021
        set_to_dummy_if_null(ops, inode_listxattr);
1022
        set_to_dummy_if_null(ops, inode_removexattr);
1023
        set_to_dummy_if_null(ops, inode_need_killpriv);
1024
        set_to_dummy_if_null(ops, inode_killpriv);
1025
        set_to_dummy_if_null(ops, inode_getsecurity);
1026
        set_to_dummy_if_null(ops, inode_setsecurity);
1027
        set_to_dummy_if_null(ops, inode_listsecurity);
1028
        set_to_dummy_if_null(ops, file_permission);
1029
        set_to_dummy_if_null(ops, file_alloc_security);
1030
        set_to_dummy_if_null(ops, file_free_security);
1031
        set_to_dummy_if_null(ops, file_ioctl);
1032
        set_to_dummy_if_null(ops, file_mmap);
1033
        set_to_dummy_if_null(ops, file_mprotect);
1034
        set_to_dummy_if_null(ops, file_lock);
1035
        set_to_dummy_if_null(ops, file_fcntl);
1036
        set_to_dummy_if_null(ops, file_set_fowner);
1037
        set_to_dummy_if_null(ops, file_send_sigiotask);
1038
        set_to_dummy_if_null(ops, file_receive);
1039
        set_to_dummy_if_null(ops, dentry_open);
1040
        set_to_dummy_if_null(ops, task_create);
1041
        set_to_dummy_if_null(ops, task_alloc_security);
1042
        set_to_dummy_if_null(ops, task_free_security);
1043
        set_to_dummy_if_null(ops, task_setuid);
1044
        set_to_dummy_if_null(ops, task_post_setuid);
1045
        set_to_dummy_if_null(ops, task_setgid);
1046
        set_to_dummy_if_null(ops, task_setpgid);
1047
        set_to_dummy_if_null(ops, task_getpgid);
1048
        set_to_dummy_if_null(ops, task_getsid);
1049
        set_to_dummy_if_null(ops, task_getsecid);
1050
        set_to_dummy_if_null(ops, task_setgroups);
1051
        set_to_dummy_if_null(ops, task_setnice);
1052
        set_to_dummy_if_null(ops, task_setioprio);
1053
        set_to_dummy_if_null(ops, task_getioprio);
1054
        set_to_dummy_if_null(ops, task_setrlimit);
1055
        set_to_dummy_if_null(ops, task_setscheduler);
1056
        set_to_dummy_if_null(ops, task_getscheduler);
1057
        set_to_dummy_if_null(ops, task_movememory);
1058
        set_to_dummy_if_null(ops, task_wait);
1059
        set_to_dummy_if_null(ops, task_kill);
1060
        set_to_dummy_if_null(ops, task_prctl);
1061
        set_to_dummy_if_null(ops, task_reparent_to_init);
1062
        set_to_dummy_if_null(ops, task_to_inode);
1063
        set_to_dummy_if_null(ops, ipc_permission);
1064
        set_to_dummy_if_null(ops, msg_msg_alloc_security);
1065
        set_to_dummy_if_null(ops, msg_msg_free_security);
1066
        set_to_dummy_if_null(ops, msg_queue_alloc_security);
1067
        set_to_dummy_if_null(ops, msg_queue_free_security);
1068
        set_to_dummy_if_null(ops, msg_queue_associate);
1069
        set_to_dummy_if_null(ops, msg_queue_msgctl);
1070
        set_to_dummy_if_null(ops, msg_queue_msgsnd);
1071
        set_to_dummy_if_null(ops, msg_queue_msgrcv);
1072
        set_to_dummy_if_null(ops, shm_alloc_security);
1073
        set_to_dummy_if_null(ops, shm_free_security);
1074
        set_to_dummy_if_null(ops, shm_associate);
1075
        set_to_dummy_if_null(ops, shm_shmctl);
1076
        set_to_dummy_if_null(ops, shm_shmat);
1077
        set_to_dummy_if_null(ops, sem_alloc_security);
1078
        set_to_dummy_if_null(ops, sem_free_security);
1079
        set_to_dummy_if_null(ops, sem_associate);
1080
        set_to_dummy_if_null(ops, sem_semctl);
1081
        set_to_dummy_if_null(ops, sem_semop);
1082
        set_to_dummy_if_null(ops, netlink_send);
1083
        set_to_dummy_if_null(ops, netlink_recv);
1084
        set_to_dummy_if_null(ops, register_security);
1085
        set_to_dummy_if_null(ops, d_instantiate);
1086
        set_to_dummy_if_null(ops, getprocattr);
1087
        set_to_dummy_if_null(ops, setprocattr);
1088
        set_to_dummy_if_null(ops, secid_to_secctx);
1089
        set_to_dummy_if_null(ops, release_secctx);
1090
#ifdef CONFIG_SECURITY_NETWORK
1091
        set_to_dummy_if_null(ops, unix_stream_connect);
1092
        set_to_dummy_if_null(ops, unix_may_send);
1093
        set_to_dummy_if_null(ops, socket_create);
1094
        set_to_dummy_if_null(ops, socket_post_create);
1095
        set_to_dummy_if_null(ops, socket_bind);
1096
        set_to_dummy_if_null(ops, socket_connect);
1097
        set_to_dummy_if_null(ops, socket_listen);
1098
        set_to_dummy_if_null(ops, socket_accept);
1099
        set_to_dummy_if_null(ops, socket_post_accept);
1100
        set_to_dummy_if_null(ops, socket_sendmsg);
1101
        set_to_dummy_if_null(ops, socket_recvmsg);
1102
        set_to_dummy_if_null(ops, socket_getsockname);
1103
        set_to_dummy_if_null(ops, socket_getpeername);
1104
        set_to_dummy_if_null(ops, socket_setsockopt);
1105
        set_to_dummy_if_null(ops, socket_getsockopt);
1106
        set_to_dummy_if_null(ops, socket_shutdown);
1107
        set_to_dummy_if_null(ops, socket_sock_rcv_skb);
1108
        set_to_dummy_if_null(ops, socket_getpeersec_stream);
1109
        set_to_dummy_if_null(ops, socket_getpeersec_dgram);
1110
        set_to_dummy_if_null(ops, sk_alloc_security);
1111
        set_to_dummy_if_null(ops, sk_free_security);
1112
        set_to_dummy_if_null(ops, sk_clone_security);
1113
        set_to_dummy_if_null(ops, sk_getsecid);
1114
        set_to_dummy_if_null(ops, sock_graft);
1115
        set_to_dummy_if_null(ops, inet_conn_request);
1116
        set_to_dummy_if_null(ops, inet_csk_clone);
1117
        set_to_dummy_if_null(ops, inet_conn_established);
1118
        set_to_dummy_if_null(ops, req_classify_flow);
1119
 #endif /* CONFIG_SECURITY_NETWORK */
1120
#ifdef  CONFIG_SECURITY_NETWORK_XFRM
1121
        set_to_dummy_if_null(ops, xfrm_policy_alloc_security);
1122
        set_to_dummy_if_null(ops, xfrm_policy_clone_security);
1123
        set_to_dummy_if_null(ops, xfrm_policy_free_security);
1124
        set_to_dummy_if_null(ops, xfrm_policy_delete_security);
1125
        set_to_dummy_if_null(ops, xfrm_state_alloc_security);
1126
        set_to_dummy_if_null(ops, xfrm_state_free_security);
1127
        set_to_dummy_if_null(ops, xfrm_state_delete_security);
1128
        set_to_dummy_if_null(ops, xfrm_policy_lookup);
1129
        set_to_dummy_if_null(ops, xfrm_state_pol_flow_match);
1130
        set_to_dummy_if_null(ops, xfrm_decode_session);
1131
#endif  /* CONFIG_SECURITY_NETWORK_XFRM */
1132
#ifdef CONFIG_KEYS
1133
        set_to_dummy_if_null(ops, key_alloc);
1134
        set_to_dummy_if_null(ops, key_free);
1135
        set_to_dummy_if_null(ops, key_permission);
1136
#endif  /* CONFIG_KEYS */
1137
 
1138
}
1139
 

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.