1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22#ifndef __LINUX_SECURITY_H
23#define __LINUX_SECURITY_H
24
25#include <linux/fs.h>
26#include <linux/binfmts.h>
27#include <linux/signal.h>
28#include <linux/resource.h>
29#include <linux/sem.h>
30#include <linux/shm.h>
31#include <linux/mm.h>
32#include <linux/msg.h>
33#include <linux/sched.h>
34#include <linux/key.h>
35#include <linux/xfrm.h>
36#include <linux/slab.h>
37#include <net/flow.h>
38
39
40#define SECURITY_NAME_MAX 10
41
42
43#define SECURITY_CAP_NOAUDIT 0
44#define SECURITY_CAP_AUDIT 1
45
46struct ctl_table;
47struct audit_krule;
48
49
50
51
52
53extern int cap_capable(struct task_struct *tsk, const struct cred *cred,
54 int cap, int audit);
55extern int cap_settime(struct timespec *ts, struct timezone *tz);
56extern int cap_ptrace_access_check(struct task_struct *child, unsigned int mode);
57extern int cap_ptrace_traceme(struct task_struct *parent);
58extern int cap_capget(struct task_struct *target, kernel_cap_t *effective, kernel_cap_t *inheritable, kernel_cap_t *permitted);
59extern int cap_capset(struct cred *new, const struct cred *old,
60 const kernel_cap_t *effective,
61 const kernel_cap_t *inheritable,
62 const kernel_cap_t *permitted);
63extern int cap_bprm_set_creds(struct linux_binprm *bprm);
64extern int cap_bprm_secureexec(struct linux_binprm *bprm);
65extern int cap_inode_setxattr(struct dentry *dentry, const char *name,
66 const void *value, size_t size, int flags);
67extern int cap_inode_removexattr(struct dentry *dentry, const char *name);
68extern int cap_inode_need_killpriv(struct dentry *dentry);
69extern int cap_inode_killpriv(struct dentry *dentry);
70extern int cap_file_mmap(struct file *file, unsigned long reqprot,
71 unsigned long prot, unsigned long flags,
72 unsigned long addr, unsigned long addr_only);
73extern int cap_task_fix_setuid(struct cred *new, const struct cred *old, int flags);
74extern int cap_task_prctl(int option, unsigned long arg2, unsigned long arg3,
75 unsigned long arg4, unsigned long arg5);
76extern int cap_task_setscheduler(struct task_struct *p, int policy, struct sched_param *lp);
77extern int cap_task_setioprio(struct task_struct *p, int ioprio);
78extern int cap_task_setnice(struct task_struct *p, int nice);
79extern int cap_syslog(int type, bool from_file);
80extern int cap_vm_enough_memory(struct mm_struct *mm, long pages);
81
82struct msghdr;
83struct sk_buff;
84struct sock;
85struct sockaddr;
86struct socket;
87struct flowi;
88struct dst_entry;
89struct xfrm_selector;
90struct xfrm_policy;
91struct xfrm_state;
92struct xfrm_user_sec_ctx;
93struct seq_file;
94
95extern int cap_netlink_send(struct sock *sk, struct sk_buff *skb);
96extern int cap_netlink_recv(struct sk_buff *skb, int cap);
97
98void reset_security_ops(void);
99
100#ifdef CONFIG_MMU
101extern unsigned long mmap_min_addr;
102extern unsigned long dac_mmap_min_addr;
103#else
104#define dac_mmap_min_addr 0UL
105#endif
106
107
108
109
110
111#define LSM_SETID_ID 1
112
113
114#define LSM_SETID_RE 2
115
116
117#define LSM_SETID_RES 4
118
119
120#define LSM_SETID_FS 8
121
122
123struct sched_param;
124struct request_sock;
125
126
127#define LSM_UNSAFE_SHARE 1
128#define LSM_UNSAFE_PTRACE 2
129#define LSM_UNSAFE_PTRACE_CAP 4
130
131#ifdef CONFIG_MMU
132
133
134
135
136static inline unsigned long round_hint_to_min(unsigned long hint)
137{
138 hint &= PAGE_MASK;
139 if (((void *)hint != NULL) &&
140 (hint < mmap_min_addr))
141 return PAGE_ALIGN(mmap_min_addr);
142 return hint;
143}
144extern int mmap_min_addr_handler(struct ctl_table *table, int write,
145 void __user *buffer, size_t *lenp, loff_t *ppos);
146#endif
147
148#ifdef CONFIG_SECURITY
149
150struct security_mnt_opts {
151 char **mnt_opts;
152 int *mnt_opts_flags;
153 int num_mnt_opts;
154};
155
156static inline void security_init_mnt_opts(struct security_mnt_opts *opts)
157{
158 opts->mnt_opts = NULL;
159 opts->mnt_opts_flags = NULL;
160 opts->num_mnt_opts = 0;
161}
162
163static inline void security_free_mnt_opts(struct security_mnt_opts *opts)
164{
165 int i;
166 if (opts->mnt_opts)
167 for (i = 0; i < opts->num_mnt_opts; i++)
168 kfree(opts->mnt_opts[i]);
169 kfree(opts->mnt_opts);
170 opts->mnt_opts = NULL;
171 kfree(opts->mnt_opts_flags);
172 opts->mnt_opts_flags = NULL;
173 opts->num_mnt_opts = 0;
174}
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287
1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
1298
1299
1300
1301
1302
1303
1304
1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
1320
1321
1322
1323
1324
1325
1326
1327
1328
1329
1330
1331
1332
1333
1334
1335
1336
1337
1338
1339
1340
1341
1342
1343
1344
1345
1346
1347
1348
1349
1350
1351
1352
1353
1354
1355
1356
1357
1358
1359
1360
1361
1362
1363
1364
1365
1366
1367
1368
1369
1370
1371
1372
1373
1374
1375
1376
1377
1378
1379
1380
1381
1382
1383
1384
1385
1386
1387
1388
1389
1390
1391
1392
1393
1394
1395
1396
1397
1398
1399
1400
1401
1402
1403
1404
1405
1406
1407
1408
1409
1410
1411
1412
1413
1414
1415
1416
1417
1418
1419
1420
1421
1422
1423
1424
1425
1426
1427
1428
1429
1430
1431
1432
1433
1434
1435
1436
1437
1438
1439
1440
1441
1442
1443
1444
1445
1446
1447
1448
1449
1450struct security_operations {
1451 char name[SECURITY_NAME_MAX + 1];
1452
1453 int (*ptrace_access_check) (struct task_struct *child, unsigned int mode);
1454 int (*ptrace_traceme) (struct task_struct *parent);
1455 int (*capget) (struct task_struct *target,
1456 kernel_cap_t *effective,
1457 kernel_cap_t *inheritable, kernel_cap_t *permitted);
1458 int (*capset) (struct cred *new,
1459 const struct cred *old,
1460 const kernel_cap_t *effective,
1461 const kernel_cap_t *inheritable,
1462 const kernel_cap_t *permitted);
1463 int (*capable) (struct task_struct *tsk, const struct cred *cred,
1464 int cap, int audit);
1465 int (*acct) (struct file *file);
1466 int (*sysctl) (struct ctl_table *table, int op);
1467 int (*quotactl) (int cmds, int type, int id, struct super_block *sb);
1468 int (*quota_on) (struct dentry *dentry);
1469 int (*syslog) (int type, bool from_file);
1470 int (*settime) (struct timespec *ts, struct timezone *tz);
1471 int (*vm_enough_memory) (struct mm_struct *mm, long pages);
1472
1473 int (*bprm_set_creds) (struct linux_binprm *bprm);
1474 int (*bprm_check_security) (struct linux_binprm *bprm);
1475 int (*bprm_secureexec) (struct linux_binprm *bprm);
1476 void (*bprm_committing_creds) (struct linux_binprm *bprm);
1477 void (*bprm_committed_creds) (struct linux_binprm *bprm);
1478
1479 int (*sb_alloc_security) (struct super_block *sb);
1480 void (*sb_free_security) (struct super_block *sb);
1481 int (*sb_copy_data) (char *orig, char *copy);
1482 int (*sb_kern_mount) (struct super_block *sb, int flags, void *data);
1483 int (*sb_show_options) (struct seq_file *m, struct super_block *sb);
1484 int (*sb_statfs) (struct dentry *dentry);
1485 int (*sb_mount) (char *dev_name, struct path *path,
1486 char *type, unsigned long flags, void *data);
1487 int (*sb_check_sb) (struct vfsmount *mnt, struct path *path);
1488 int (*sb_umount) (struct vfsmount *mnt, int flags);
1489 void (*sb_umount_close) (struct vfsmount *mnt);
1490 void (*sb_umount_busy) (struct vfsmount *mnt);
1491 void (*sb_post_remount) (struct vfsmount *mnt,
1492 unsigned long flags, void *data);
1493 void (*sb_post_addmount) (struct vfsmount *mnt,
1494 struct path *mountpoint);
1495 int (*sb_pivotroot) (struct path *old_path,
1496 struct path *new_path);
1497 void (*sb_post_pivotroot) (struct path *old_path,
1498 struct path *new_path);
1499 int (*sb_set_mnt_opts) (struct super_block *sb,
1500 struct security_mnt_opts *opts);
1501 void (*sb_clone_mnt_opts) (const struct super_block *oldsb,
1502 struct super_block *newsb);
1503 int (*sb_parse_opts_str) (char *options, struct security_mnt_opts *opts);
1504
1505#ifdef CONFIG_SECURITY_PATH
1506 int (*path_unlink) (struct path *dir, struct dentry *dentry);
1507 int (*path_mkdir) (struct path *dir, struct dentry *dentry, int mode);
1508 int (*path_rmdir) (struct path *dir, struct dentry *dentry);
1509 int (*path_mknod) (struct path *dir, struct dentry *dentry, int mode,
1510 unsigned int dev);
1511 int (*path_truncate) (struct path *path, loff_t length,
1512 unsigned int time_attrs);
1513 int (*path_symlink) (struct path *dir, struct dentry *dentry,
1514 const char *old_name);
1515 int (*path_link) (struct dentry *old_dentry, struct path *new_dir,
1516 struct dentry *new_dentry);
1517 int (*path_rename) (struct path *old_dir, struct dentry *old_dentry,
1518 struct path *new_dir, struct dentry *new_dentry);
1519 int (*path_chmod) (struct dentry *dentry, struct vfsmount *mnt,
1520 mode_t mode);
1521 int (*path_chown) (struct path *path, uid_t uid, gid_t gid);
1522 int (*path_chroot) (struct path *path);
1523#endif
1524
1525 int (*inode_alloc_security) (struct inode *inode);
1526 void (*inode_free_security) (struct inode *inode);
1527 int (*inode_init_security) (struct inode *inode, struct inode *dir,
1528 char **name, void **value, size_t *len);
1529 int (*inode_create) (struct inode *dir,
1530 struct dentry *dentry, int mode);
1531 int (*inode_link) (struct dentry *old_dentry,
1532 struct inode *dir, struct dentry *new_dentry);
1533 int (*inode_unlink) (struct inode *dir, struct dentry *dentry);
1534 int (*inode_symlink) (struct inode *dir,
1535 struct dentry *dentry, const char *old_name);
1536 int (*inode_mkdir) (struct inode *dir, struct dentry *dentry, int mode);
1537 int (*inode_rmdir) (struct inode *dir, struct dentry *dentry);
1538 int (*inode_mknod) (struct inode *dir, struct dentry *dentry,
1539 int mode, dev_t dev);
1540 int (*inode_rename) (struct inode *old_dir, struct dentry *old_dentry,
1541 struct inode *new_dir, struct dentry *new_dentry);
1542 int (*inode_readlink) (struct dentry *dentry);
1543 int (*inode_follow_link) (struct dentry *dentry, struct nameidata *nd);
1544 int (*inode_permission) (struct inode *inode, int mask);
1545 int (*inode_setattr) (struct dentry *dentry, struct iattr *attr);
1546 int (*inode_getattr) (struct vfsmount *mnt, struct dentry *dentry);
1547 void (*inode_delete) (struct inode *inode);
1548 int (*inode_setxattr) (struct dentry *dentry, const char *name,
1549 const void *value, size_t size, int flags);
1550 void (*inode_post_setxattr) (struct dentry *dentry, const char *name,
1551 const void *value, size_t size, int flags);
1552 int (*inode_getxattr) (struct dentry *dentry, const char *name);
1553 int (*inode_listxattr) (struct dentry *dentry);
1554 int (*inode_removexattr) (struct dentry *dentry, const char *name);
1555 int (*inode_need_killpriv) (struct dentry *dentry);
1556 int (*inode_killpriv) (struct dentry *dentry);
1557 int (*inode_getsecurity) (const struct inode *inode, const char *name, void **buffer, bool alloc);
1558 int (*inode_setsecurity) (struct inode *inode, const char *name, const void *value, size_t size, int flags);
1559 int (*inode_listsecurity) (struct inode *inode, char *buffer, size_t buffer_size);
1560 void (*inode_getsecid) (const struct inode *inode, u32 *secid);
1561
1562 int (*file_permission) (struct file *file, int mask);
1563 int (*file_alloc_security) (struct file *file);
1564 void (*file_free_security) (struct file *file);
1565 int (*file_ioctl) (struct file *file, unsigned int cmd,
1566 unsigned long arg);
1567 int (*file_mmap) (struct file *file,
1568 unsigned long reqprot, unsigned long prot,
1569 unsigned long flags, unsigned long addr,
1570 unsigned long addr_only);
1571 int (*file_mprotect) (struct vm_area_struct *vma,
1572 unsigned long reqprot,
1573 unsigned long prot);
1574 int (*file_lock) (struct file *file, unsigned int cmd);
1575 int (*file_fcntl) (struct file *file, unsigned int cmd,
1576 unsigned long arg);
1577 int (*file_set_fowner) (struct file *file);
1578 int (*file_send_sigiotask) (struct task_struct *tsk,
1579 struct fown_struct *fown, int sig);
1580 int (*file_receive) (struct file *file);
1581 int (*dentry_open) (struct file *file, const struct cred *cred);
1582
1583 int (*task_create) (unsigned long clone_flags);
1584 int (*cred_alloc_blank) (struct cred *cred, gfp_t gfp);
1585 void (*cred_free) (struct cred *cred);
1586 int (*cred_prepare)(struct cred *new, const struct cred *old,
1587 gfp_t gfp);
1588 void (*cred_commit)(struct cred *new, const struct cred *old);
1589 void (*cred_transfer)(struct cred *new, const struct cred *old);
1590 int (*kernel_act_as)(struct cred *new, u32 secid);
1591 int (*kernel_create_files_as)(struct cred *new, struct inode *inode);
1592 int (*kernel_module_request)(char *kmod_name);
1593 int (*task_setuid) (uid_t id0, uid_t id1, uid_t id2, int flags);
1594 int (*task_fix_setuid) (struct cred *new, const struct cred *old,
1595 int flags);
1596 int (*task_setgid) (gid_t id0, gid_t id1, gid_t id2, int flags);
1597 int (*task_setpgid) (struct task_struct *p, pid_t pgid);
1598 int (*task_getpgid) (struct task_struct *p);
1599 int (*task_getsid) (struct task_struct *p);
1600 void (*task_getsecid) (struct task_struct *p, u32 *secid);
1601 int (*task_setgroups) (struct group_info *group_info);
1602 int (*task_setnice) (struct task_struct *p, int nice);
1603 int (*task_setioprio) (struct task_struct *p, int ioprio);
1604 int (*task_getioprio) (struct task_struct *p);
1605 int (*task_setrlimit) (unsigned int resource, struct rlimit *new_rlim);
1606 int (*task_setscheduler) (struct task_struct *p, int policy,
1607 struct sched_param *lp);
1608 int (*task_getscheduler) (struct task_struct *p);
1609 int (*task_movememory) (struct task_struct *p);
1610 int (*task_kill) (struct task_struct *p,
1611 struct siginfo *info, int sig, u32 secid);
1612 int (*task_wait) (struct task_struct *p);
1613 int (*task_prctl) (int option, unsigned long arg2,
1614 unsigned long arg3, unsigned long arg4,
1615 unsigned long arg5);
1616 void (*task_to_inode) (struct task_struct *p, struct inode *inode);
1617
1618 int (*ipc_permission) (struct kern_ipc_perm *ipcp, short flag);
1619 void (*ipc_getsecid) (struct kern_ipc_perm *ipcp, u32 *secid);
1620
1621 int (*msg_msg_alloc_security) (struct msg_msg *msg);
1622 void (*msg_msg_free_security) (struct msg_msg *msg);
1623
1624 int (*msg_queue_alloc_security) (struct msg_queue *msq);
1625 void (*msg_queue_free_security) (struct msg_queue *msq);
1626 int (*msg_queue_associate) (struct msg_queue *msq, int msqflg);
1627 int (*msg_queue_msgctl) (struct msg_queue *msq, int cmd);
1628 int (*msg_queue_msgsnd) (struct msg_queue *msq,
1629 struct msg_msg *msg, int msqflg);
1630 int (*msg_queue_msgrcv) (struct msg_queue *msq,
1631 struct msg_msg *msg,
1632 struct task_struct *target,
1633 long type, int mode);
1634
1635 int (*shm_alloc_security) (struct shmid_kernel *shp);
1636 void (*shm_free_security) (struct shmid_kernel *shp);
1637 int (*shm_associate) (struct shmid_kernel *shp, int shmflg);
1638 int (*shm_shmctl) (struct shmid_kernel *shp, int cmd);
1639 int (*shm_shmat) (struct shmid_kernel *shp,
1640 char __user *shmaddr, int shmflg);
1641
1642 int (*sem_alloc_security) (struct sem_array *sma);
1643 void (*sem_free_security) (struct sem_array *sma);
1644 int (*sem_associate) (struct sem_array *sma, int semflg);
1645 int (*sem_semctl) (struct sem_array *sma, int cmd);
1646 int (*sem_semop) (struct sem_array *sma,
1647 struct sembuf *sops, unsigned nsops, int alter);
1648
1649 int (*netlink_send) (struct sock *sk, struct sk_buff *skb);
1650 int (*netlink_recv) (struct sk_buff *skb, int cap);
1651
1652 void (*d_instantiate) (struct dentry *dentry, struct inode *inode);
1653
1654 int (*getprocattr) (struct task_struct *p, char *name, char **value);
1655 int (*setprocattr) (struct task_struct *p, char *name, void *value, size_t size);
1656 int (*secid_to_secctx) (u32 secid, char **secdata, u32 *seclen);
1657 int (*secctx_to_secid) (const char *secdata, u32 seclen, u32 *secid);
1658 void (*release_secctx) (char *secdata, u32 seclen);
1659
1660 int (*inode_notifysecctx)(struct inode *inode, void *ctx, u32 ctxlen);
1661 int (*inode_setsecctx)(struct dentry *dentry, void *ctx, u32 ctxlen);
1662 int (*inode_getsecctx)(struct inode *inode, void **ctx, u32 *ctxlen);
1663
1664#ifdef CONFIG_SECURITY_NETWORK
1665 int (*unix_stream_connect) (struct socket *sock,
1666 struct socket *other, struct sock *newsk);
1667 int (*unix_may_send) (struct socket *sock, struct socket *other);
1668
1669 int (*socket_create) (int family, int type, int protocol, int kern);
1670 int (*socket_post_create) (struct socket *sock, int family,
1671 int type, int protocol, int kern);
1672 int (*socket_bind) (struct socket *sock,
1673 struct sockaddr *address, int addrlen);
1674 int (*socket_connect) (struct socket *sock,
1675 struct sockaddr *address, int addrlen);
1676 int (*socket_listen) (struct socket *sock, int backlog);
1677 int (*socket_accept) (struct socket *sock, struct socket *newsock);
1678 int (*socket_sendmsg) (struct socket *sock,
1679 struct msghdr *msg, int size);
1680 int (*socket_recvmsg) (struct socket *sock,
1681 struct msghdr *msg, int size, int flags);
1682 int (*socket_getsockname) (struct socket *sock);
1683 int (*socket_getpeername) (struct socket *sock);
1684 int (*socket_getsockopt) (struct socket *sock, int level, int optname);
1685 int (*socket_setsockopt) (struct socket *sock, int level, int optname);
1686 int (*socket_shutdown) (struct socket *sock, int how);
1687 int (*socket_sock_rcv_skb) (struct sock *sk, struct sk_buff *skb);
1688 int (*socket_getpeersec_stream) (struct socket *sock, char __user *optval, int __user *optlen, unsigned len);
1689 int (*socket_getpeersec_dgram) (struct socket *sock, struct sk_buff *skb, u32 *secid);
1690 int (*sk_alloc_security) (struct sock *sk, int family, gfp_t priority);
1691 void (*sk_free_security) (struct sock *sk);
1692 void (*sk_clone_security) (const struct sock *sk, struct sock *newsk);
1693 void (*sk_getsecid) (struct sock *sk, u32 *secid);
1694 void (*sock_graft) (struct sock *sk, struct socket *parent);
1695 int (*inet_conn_request) (struct sock *sk, struct sk_buff *skb,
1696 struct request_sock *req);
1697 void (*inet_csk_clone) (struct sock *newsk, const struct request_sock *req);
1698 void (*inet_conn_established) (struct sock *sk, struct sk_buff *skb);
1699 void (*req_classify_flow) (const struct request_sock *req, struct flowi *fl);
1700 int (*tun_dev_create)(void);
1701 void (*tun_dev_post_create)(struct sock *sk);
1702 int (*tun_dev_attach)(struct sock *sk);
1703#endif
1704
1705#ifdef CONFIG_SECURITY_NETWORK_XFRM
1706 int (*xfrm_policy_alloc_security) (struct xfrm_sec_ctx **ctxp,
1707 struct xfrm_user_sec_ctx *sec_ctx);
1708 int (*xfrm_policy_clone_security) (struct xfrm_sec_ctx *old_ctx, struct xfrm_sec_ctx **new_ctx);
1709 void (*xfrm_policy_free_security) (struct xfrm_sec_ctx *ctx);
1710 int (*xfrm_policy_delete_security) (struct xfrm_sec_ctx *ctx);
1711 int (*xfrm_state_alloc_security) (struct xfrm_state *x,
1712 struct xfrm_user_sec_ctx *sec_ctx,
1713 u32 secid);
1714 void (*xfrm_state_free_security) (struct xfrm_state *x);
1715 int (*xfrm_state_delete_security) (struct xfrm_state *x);
1716 int (*xfrm_policy_lookup) (struct xfrm_sec_ctx *ctx, u32 fl_secid, u8 dir);
1717 int (*xfrm_state_pol_flow_match) (struct xfrm_state *x,
1718 struct xfrm_policy *xp,
1719 struct flowi *fl);
1720 int (*xfrm_decode_session) (struct sk_buff *skb, u32 *secid, int ckall);
1721#endif
1722
1723
1724#ifdef CONFIG_KEYS
1725 int (*key_alloc) (struct key *key, const struct cred *cred, unsigned long flags);
1726 void (*key_free) (struct key *key);
1727 int (*key_permission) (key_ref_t key_ref,
1728 const struct cred *cred,
1729 key_perm_t perm);
1730 int (*key_getsecurity)(struct key *key, char **_buffer);
1731 int (*key_session_to_parent)(const struct cred *cred,
1732 const struct cred *parent_cred,
1733 struct key *key);
1734#endif
1735
1736#ifdef CONFIG_AUDIT
1737 int (*audit_rule_init) (u32 field, u32 op, char *rulestr, void **lsmrule);
1738 int (*audit_rule_known) (struct audit_krule *krule);
1739 int (*audit_rule_match) (u32 secid, u32 field, u32 op, void *lsmrule,
1740 struct audit_context *actx);
1741 void (*audit_rule_free) (void *lsmrule);
1742#endif
1743};
1744
1745
1746extern int security_init(void);
1747extern int security_module_enable(struct security_operations *ops);
1748extern int register_security(struct security_operations *ops);
1749
1750
1751int security_ptrace_access_check(struct task_struct *child, unsigned int mode);
1752int security_ptrace_traceme(struct task_struct *parent);
1753int security_capget(struct task_struct *target,
1754 kernel_cap_t *effective,
1755 kernel_cap_t *inheritable,
1756 kernel_cap_t *permitted);
1757int security_capset(struct cred *new, const struct cred *old,
1758 const kernel_cap_t *effective,
1759 const kernel_cap_t *inheritable,
1760 const kernel_cap_t *permitted);
1761int security_capable(int cap);
1762int security_real_capable(struct task_struct *tsk, int cap);
1763int security_real_capable_noaudit(struct task_struct *tsk, int cap);
1764int security_acct(struct file *file);
1765int security_sysctl(struct ctl_table *table, int op);
1766int security_quotactl(int cmds, int type, int id, struct super_block *sb);
1767int security_quota_on(struct dentry *dentry);
1768int security_syslog(int type, bool from_file);
1769int security_settime(struct timespec *ts, struct timezone *tz);
1770int security_vm_enough_memory(long pages);
1771int security_vm_enough_memory_mm(struct mm_struct *mm, long pages);
1772int security_vm_enough_memory_kern(long pages);
1773int security_bprm_set_creds(struct linux_binprm *bprm);
1774int security_bprm_check(struct linux_binprm *bprm);
1775void security_bprm_committing_creds(struct linux_binprm *bprm);
1776void security_bprm_committed_creds(struct linux_binprm *bprm);
1777int security_bprm_secureexec(struct linux_binprm *bprm);
1778int security_sb_alloc(struct super_block *sb);
1779void security_sb_free(struct super_block *sb);
1780int security_sb_copy_data(char *orig, char *copy);
1781int security_sb_kern_mount(struct super_block *sb, int flags, void *data);
1782int security_sb_show_options(struct seq_file *m, struct super_block *sb);
1783int security_sb_statfs(struct dentry *dentry);
1784int security_sb_mount(char *dev_name, struct path *path,
1785 char *type, unsigned long flags, void *data);
1786int security_sb_check_sb(struct vfsmount *mnt, struct path *path);
1787int security_sb_umount(struct vfsmount *mnt, int flags);
1788void security_sb_umount_close(struct vfsmount *mnt);
1789void security_sb_umount_busy(struct vfsmount *mnt);
1790void security_sb_post_remount(struct vfsmount *mnt, unsigned long flags, void *data);
1791void security_sb_post_addmount(struct vfsmount *mnt, struct path *mountpoint);
1792int security_sb_pivotroot(struct path *old_path, struct path *new_path);
1793void security_sb_post_pivotroot(struct path *old_path, struct path *new_path);
1794int security_sb_set_mnt_opts(struct super_block *sb, struct security_mnt_opts *opts);
1795void security_sb_clone_mnt_opts(const struct super_block *oldsb,
1796 struct super_block *newsb);
1797int security_sb_parse_opts_str(char *options, struct security_mnt_opts *opts);
1798
1799int security_inode_alloc(struct inode *inode);
1800void security_inode_free(struct inode *inode);
1801int security_inode_init_security(struct inode *inode, struct inode *dir,
1802 char **name, void **value, size_t *len);
1803int security_inode_create(struct inode *dir, struct dentry *dentry, int mode);
1804int security_inode_link(struct dentry *old_dentry, struct inode *dir,
1805 struct dentry *new_dentry);
1806int security_inode_unlink(struct inode *dir, struct dentry *dentry);
1807int security_inode_symlink(struct inode *dir, struct dentry *dentry,
1808 const char *old_name);
1809int security_inode_mkdir(struct inode *dir, struct dentry *dentry, int mode);
1810int security_inode_rmdir(struct inode *dir, struct dentry *dentry);
1811int security_inode_mknod(struct inode *dir, struct dentry *dentry, int mode, dev_t dev);
1812int security_inode_rename(struct inode *old_dir, struct dentry *old_dentry,
1813 struct inode *new_dir, struct dentry *new_dentry);
1814int security_inode_readlink(struct dentry *dentry);
1815int security_inode_follow_link(struct dentry *dentry, struct nameidata *nd);
1816int security_inode_permission(struct inode *inode, int mask);
1817int security_inode_setattr(struct dentry *dentry, struct iattr *attr);
1818int security_inode_getattr(struct vfsmount *mnt, struct dentry *dentry);
1819void security_inode_delete(struct inode *inode);
1820int security_inode_setxattr(struct dentry *dentry, const char *name,
1821 const void *value, size_t size, int flags);
1822void security_inode_post_setxattr(struct dentry *dentry, const char *name,
1823 const void *value, size_t size, int flags);
1824int security_inode_getxattr(struct dentry *dentry, const char *name);
1825int security_inode_listxattr(struct dentry *dentry);
1826int security_inode_removexattr(struct dentry *dentry, const char *name);
1827int security_inode_need_killpriv(struct dentry *dentry);
1828int security_inode_killpriv(struct dentry *dentry);
1829int security_inode_getsecurity(const struct inode *inode, const char *name, void **buffer, bool alloc);
1830int security_inode_setsecurity(struct inode *inode, const char *name, const void *value, size_t size, int flags);
1831int security_inode_listsecurity(struct inode *inode, char *buffer, size_t buffer_size);
1832void security_inode_getsecid(const struct inode *inode, u32 *secid);
1833int security_file_permission(struct file *file, int mask);
1834int security_file_alloc(struct file *file);
1835void security_file_free(struct file *file);
1836int security_file_ioctl(struct file *file, unsigned int cmd, unsigned long arg);
1837int security_file_mmap(struct file *file, unsigned long reqprot,
1838 unsigned long prot, unsigned long flags,
1839 unsigned long addr, unsigned long addr_only);
1840int security_file_mprotect(struct vm_area_struct *vma, unsigned long reqprot,
1841 unsigned long prot);
1842int security_file_lock(struct file *file, unsigned int cmd);
1843int security_file_fcntl(struct file *file, unsigned int cmd, unsigned long arg);
1844int security_file_set_fowner(struct file *file);
1845int security_file_send_sigiotask(struct task_struct *tsk,
1846 struct fown_struct *fown, int sig);
1847int security_file_receive(struct file *file);
1848int security_dentry_open(struct file *file, const struct cred *cred);
1849int security_task_create(unsigned long clone_flags);
1850int security_cred_alloc_blank(struct cred *cred, gfp_t gfp);
1851void security_cred_free(struct cred *cred);
1852int security_prepare_creds(struct cred *new, const struct cred *old, gfp_t gfp);
1853void security_commit_creds(struct cred *new, const struct cred *old);
1854void security_transfer_creds(struct cred *new, const struct cred *old);
1855int security_kernel_act_as(struct cred *new, u32 secid);
1856int security_kernel_create_files_as(struct cred *new, struct inode *inode);
1857int security_kernel_module_request(char *kmod_name);
1858int security_task_setuid(uid_t id0, uid_t id1, uid_t id2, int flags);
1859int security_task_fix_setuid(struct cred *new, const struct cred *old,
1860 int flags);
1861int security_task_setgid(gid_t id0, gid_t id1, gid_t id2, int flags);
1862int security_task_setpgid(struct task_struct *p, pid_t pgid);
1863int security_task_getpgid(struct task_struct *p);
1864int security_task_getsid(struct task_struct *p);
1865void security_task_getsecid(struct task_struct *p, u32 *secid);
1866int security_task_setgroups(struct group_info *group_info);
1867int security_task_setnice(struct task_struct *p, int nice);
1868int security_task_setioprio(struct task_struct *p, int ioprio);
1869int security_task_getioprio(struct task_struct *p);
1870int security_task_setrlimit(unsigned int resource, struct rlimit *new_rlim);
1871int security_task_setscheduler(struct task_struct *p,
1872 int policy, struct sched_param *lp);
1873int security_task_getscheduler(struct task_struct *p);
1874int security_task_movememory(struct task_struct *p);
1875int security_task_kill(struct task_struct *p, struct siginfo *info,
1876 int sig, u32 secid);
1877int security_task_wait(struct task_struct *p);
1878int security_task_prctl(int option, unsigned long arg2, unsigned long arg3,
1879 unsigned long arg4, unsigned long arg5);
1880void security_task_to_inode(struct task_struct *p, struct inode *inode);
1881int security_ipc_permission(struct kern_ipc_perm *ipcp, short flag);
1882void security_ipc_getsecid(struct kern_ipc_perm *ipcp, u32 *secid);
1883int security_msg_msg_alloc(struct msg_msg *msg);
1884void security_msg_msg_free(struct msg_msg *msg);
1885int security_msg_queue_alloc(struct msg_queue *msq);
1886void security_msg_queue_free(struct msg_queue *msq);
1887int security_msg_queue_associate(struct msg_queue *msq, int msqflg);
1888int security_msg_queue_msgctl(struct msg_queue *msq, int cmd);
1889int security_msg_queue_msgsnd(struct msg_queue *msq,
1890 struct msg_msg *msg, int msqflg);
1891int security_msg_queue_msgrcv(struct msg_queue *msq, struct msg_msg *msg,
1892 struct task_struct *target, long type, int mode);
1893int security_shm_alloc(struct shmid_kernel *shp);
1894void security_shm_free(struct shmid_kernel *shp);
1895int security_shm_associate(struct shmid_kernel *shp, int shmflg);
1896int security_shm_shmctl(struct shmid_kernel *shp, int cmd);
1897int security_shm_shmat(struct shmid_kernel *shp, char __user *shmaddr, int shmflg);
1898int security_sem_alloc(struct sem_array *sma);
1899void security_sem_free(struct sem_array *sma);
1900int security_sem_associate(struct sem_array *sma, int semflg);
1901int security_sem_semctl(struct sem_array *sma, int cmd);
1902int security_sem_semop(struct sem_array *sma, struct sembuf *sops,
1903 unsigned nsops, int alter);
1904void security_d_instantiate(struct dentry *dentry, struct inode *inode);
1905int security_getprocattr(struct task_struct *p, char *name, char **value);
1906int security_setprocattr(struct task_struct *p, char *name, void *value, size_t size);
1907int security_netlink_send(struct sock *sk, struct sk_buff *skb);
1908int security_netlink_recv(struct sk_buff *skb, int cap);
1909int security_secid_to_secctx(u32 secid, char **secdata, u32 *seclen);
1910int security_secctx_to_secid(const char *secdata, u32 seclen, u32 *secid);
1911void security_release_secctx(char *secdata, u32 seclen);
1912
1913int security_inode_notifysecctx(struct inode *inode, void *ctx, u32 ctxlen);
1914int security_inode_setsecctx(struct dentry *dentry, void *ctx, u32 ctxlen);
1915int security_inode_getsecctx(struct inode *inode, void **ctx, u32 *ctxlen);
1916#else
1917struct security_mnt_opts {
1918};
1919
1920static inline void security_init_mnt_opts(struct security_mnt_opts *opts)
1921{
1922}
1923
1924static inline void security_free_mnt_opts(struct security_mnt_opts *opts)
1925{
1926}
1927
1928
1929
1930
1931
1932
1933static inline int security_init(void)
1934{
1935 return 0;
1936}
1937
1938static inline int security_ptrace_access_check(struct task_struct *child,
1939 unsigned int mode)
1940{
1941 return cap_ptrace_access_check(child, mode);
1942}
1943
1944static inline int security_ptrace_traceme(struct task_struct *parent)
1945{
1946 return cap_ptrace_traceme(parent);
1947}
1948
1949static inline int security_capget(struct task_struct *target,
1950 kernel_cap_t *effective,
1951 kernel_cap_t *inheritable,
1952 kernel_cap_t *permitted)
1953{
1954 return cap_capget(target, effective, inheritable, permitted);
1955}
1956
1957static inline int security_capset(struct cred *new,
1958 const struct cred *old,
1959 const kernel_cap_t *effective,
1960 const kernel_cap_t *inheritable,
1961 const kernel_cap_t *permitted)
1962{
1963 return cap_capset(new, old, effective, inheritable, permitted);
1964}
1965
1966static inline int security_capable(int cap)
1967{
1968 return cap_capable(current, current_cred(), cap, SECURITY_CAP_AUDIT);
1969}
1970
1971static inline int security_real_capable(struct task_struct *tsk, int cap)
1972{
1973 int ret;
1974
1975 rcu_read_lock();
1976 ret = cap_capable(tsk, __task_cred(tsk), cap, SECURITY_CAP_AUDIT);
1977 rcu_read_unlock();
1978 return ret;
1979}
1980
1981static inline
1982int security_real_capable_noaudit(struct task_struct *tsk, int cap)
1983{
1984 int ret;
1985
1986 rcu_read_lock();
1987 ret = cap_capable(tsk, __task_cred(tsk), cap,
1988 SECURITY_CAP_NOAUDIT);
1989 rcu_read_unlock();
1990 return ret;
1991}
1992
1993static inline int security_acct(struct file *file)
1994{
1995 return 0;
1996}
1997
1998static inline int security_sysctl(struct ctl_table *table, int op)
1999{
2000 return 0;
2001}
2002
2003static inline int security_quotactl(int cmds, int type, int id,
2004 struct super_block *sb)
2005{
2006 return 0;
2007}
2008
2009static inline int security_quota_on(struct dentry *dentry)
2010{
2011 return 0;
2012}
2013
2014static inline int security_syslog(int type, bool from_file)
2015{
2016 return cap_syslog(type, from_file);
2017}
2018
2019static inline int security_settime(struct timespec *ts, struct timezone *tz)
2020{
2021 return cap_settime(ts, tz);
2022}
2023
2024static inline int security_vm_enough_memory(long pages)
2025{
2026 WARN_ON(current->mm == NULL);
2027 return cap_vm_enough_memory(current->mm, pages);
2028}
2029
2030static inline int security_vm_enough_memory_mm(struct mm_struct *mm, long pages)
2031{
2032 WARN_ON(mm == NULL);
2033 return cap_vm_enough_memory(mm, pages);
2034}
2035
2036static inline int security_vm_enough_memory_kern(long pages)
2037{
2038
2039
2040 return cap_vm_enough_memory(current->mm, pages);
2041}
2042
2043static inline int security_bprm_set_creds(struct linux_binprm *bprm)
2044{
2045 return cap_bprm_set_creds(bprm);
2046}
2047
2048static inline int security_bprm_check(struct linux_binprm *bprm)
2049{
2050 return 0;
2051}
2052
2053static inline void security_bprm_committing_creds(struct linux_binprm *bprm)
2054{
2055}
2056
2057static inline void security_bprm_committed_creds(struct linux_binprm *bprm)
2058{
2059}
2060
2061static inline int security_bprm_secureexec(struct linux_binprm *bprm)
2062{
2063 return cap_bprm_secureexec(bprm);
2064}
2065
2066static inline int security_sb_alloc(struct super_block *sb)
2067{
2068 return 0;
2069}
2070
2071static inline void security_sb_free(struct super_block *sb)
2072{ }
2073
2074static inline int security_sb_copy_data(char *orig, char *copy)
2075{
2076 return 0;
2077}
2078
2079static inline int security_sb_kern_mount(struct super_block *sb, int flags, void *data)
2080{
2081 return 0;
2082}
2083
2084static inline int security_sb_show_options(struct seq_file *m,
2085 struct super_block *sb)
2086{
2087 return 0;
2088}
2089
2090static inline int security_sb_statfs(struct dentry *dentry)
2091{
2092 return 0;
2093}
2094
2095static inline int security_sb_mount(char *dev_name, struct path *path,
2096 char *type, unsigned long flags,
2097 void *data)
2098{
2099 return 0;
2100}
2101
2102static inline int security_sb_check_sb(struct vfsmount *mnt,
2103 struct path *path)
2104{
2105 return 0;
2106}
2107
2108static inline int security_sb_umount(struct vfsmount *mnt, int flags)
2109{
2110 return 0;
2111}
2112
2113static inline void security_sb_umount_close(struct vfsmount *mnt)
2114{ }
2115
2116static inline void security_sb_umount_busy(struct vfsmount *mnt)
2117{ }
2118
2119static inline void security_sb_post_remount(struct vfsmount *mnt,
2120 unsigned long flags, void *data)
2121{ }
2122
2123static inline void security_sb_post_addmount(struct vfsmount *mnt,
2124 struct path *mountpoint)
2125{ }
2126
2127static inline int security_sb_pivotroot(struct path *old_path,
2128 struct path *new_path)
2129{
2130 return 0;
2131}
2132
2133static inline void security_sb_post_pivotroot(struct path *old_path,
2134 struct path *new_path)
2135{ }
2136
2137static inline int security_sb_set_mnt_opts(struct super_block *sb,
2138 struct security_mnt_opts *opts)
2139{
2140 return 0;
2141}
2142
2143static inline void security_sb_clone_mnt_opts(const struct super_block *oldsb,
2144 struct super_block *newsb)
2145{ }
2146
2147static inline int security_sb_parse_opts_str(char *options, struct security_mnt_opts *opts)
2148{
2149 return 0;
2150}
2151
2152static inline int security_inode_alloc(struct inode *inode)
2153{
2154 return 0;
2155}
2156
2157static inline void security_inode_free(struct inode *inode)
2158{ }
2159
2160static inline int security_inode_init_security(struct inode *inode,
2161 struct inode *dir,
2162 char **name,
2163 void **value,
2164 size_t *len)
2165{
2166 return -EOPNOTSUPP;
2167}
2168
2169static inline int security_inode_create(struct inode *dir,
2170 struct dentry *dentry,
2171 int mode)
2172{
2173 return 0;
2174}
2175
2176static inline int security_inode_link(struct dentry *old_dentry,
2177 struct inode *dir,
2178 struct dentry *new_dentry)
2179{
2180 return 0;
2181}
2182
2183static inline int security_inode_unlink(struct inode *dir,
2184 struct dentry *dentry)
2185{
2186 return 0;
2187}
2188
2189static inline int security_inode_symlink(struct inode *dir,
2190 struct dentry *dentry,
2191 const char *old_name)
2192{
2193 return 0;
2194}
2195
2196static inline int security_inode_mkdir(struct inode *dir,
2197 struct dentry *dentry,
2198 int mode)
2199{
2200 return 0;
2201}
2202
2203static inline int security_inode_rmdir(struct inode *dir,
2204 struct dentry *dentry)
2205{
2206 return 0;
2207}
2208
2209static inline int security_inode_mknod(struct inode *dir,
2210 struct dentry *dentry,
2211 int mode, dev_t dev)
2212{
2213 return 0;
2214}
2215
2216static inline int security_inode_rename(struct inode *old_dir,
2217 struct dentry *old_dentry,
2218 struct inode *new_dir,
2219 struct dentry *new_dentry)
2220{
2221 return 0;
2222}
2223
2224static inline int security_inode_readlink(struct dentry *dentry)
2225{
2226 return 0;
2227}
2228
2229static inline int security_inode_follow_link(struct dentry *dentry,
2230 struct nameidata *nd)
2231{
2232 return 0;
2233}
2234
2235static inline int security_inode_permission(struct inode *inode, int mask)
2236{
2237 return 0;
2238}
2239
2240static inline int security_inode_setattr(struct dentry *dentry,
2241 struct iattr *attr)
2242{
2243 return 0;
2244}
2245
2246static inline int security_inode_getattr(struct vfsmount *mnt,
2247 struct dentry *dentry)
2248{
2249 return 0;
2250}
2251
2252static inline void security_inode_delete(struct inode *inode)
2253{ }
2254
2255static inline int security_inode_setxattr(struct dentry *dentry,
2256 const char *name, const void *value, size_t size, int flags)
2257{
2258 return cap_inode_setxattr(dentry, name, value, size, flags);
2259}
2260
2261static inline void security_inode_post_setxattr(struct dentry *dentry,
2262 const char *name, const void *value, size_t size, int flags)
2263{ }
2264
2265static inline int security_inode_getxattr(struct dentry *dentry,
2266 const char *name)
2267{
2268 return 0;
2269}
2270
2271static inline int security_inode_listxattr(struct dentry *dentry)
2272{
2273 return 0;
2274}
2275
2276static inline int security_inode_removexattr(struct dentry *dentry,
2277 const char *name)
2278{
2279 return cap_inode_removexattr(dentry, name);
2280}
2281
2282static inline int security_inode_need_killpriv(struct dentry *dentry)
2283{
2284 return cap_inode_need_killpriv(dentry);
2285}
2286
2287static inline int security_inode_killpriv(struct dentry *dentry)
2288{
2289 return cap_inode_killpriv(dentry);
2290}
2291
2292static inline int security_inode_getsecurity(const struct inode *inode, const char *name, void **buffer, bool alloc)
2293{
2294 return -EOPNOTSUPP;
2295}
2296
2297static inline int security_inode_setsecurity(struct inode *inode, const char *name, const void *value, size_t size, int flags)
2298{
2299 return -EOPNOTSUPP;
2300}
2301
2302static inline int security_inode_listsecurity(struct inode *inode, char *buffer, size_t buffer_size)
2303{
2304 return 0;
2305}
2306
2307static inline void security_inode_getsecid(const struct inode *inode, u32 *secid)
2308{
2309 *secid = 0;
2310}
2311
2312static inline int security_file_permission(struct file *file, int mask)
2313{
2314 return 0;
2315}
2316
2317static inline int security_file_alloc(struct file *file)
2318{
2319 return 0;
2320}
2321
2322static inline void security_file_free(struct file *file)
2323{ }
2324
2325static inline int security_file_ioctl(struct file *file, unsigned int cmd,
2326 unsigned long arg)
2327{
2328 return 0;
2329}
2330
2331static inline int security_file_mmap(struct file *file, unsigned long reqprot,
2332 unsigned long prot,
2333 unsigned long flags,
2334 unsigned long addr,
2335 unsigned long addr_only)
2336{
2337 return cap_file_mmap(file, reqprot, prot, flags, addr, addr_only);
2338}
2339
2340static inline int security_file_mprotect(struct vm_area_struct *vma,
2341 unsigned long reqprot,
2342 unsigned long prot)
2343{
2344 return 0;
2345}
2346
2347static inline int security_file_lock(struct file *file, unsigned int cmd)
2348{
2349 return 0;
2350}
2351
2352static inline int security_file_fcntl(struct file *file, unsigned int cmd,
2353 unsigned long arg)
2354{
2355 return 0;
2356}
2357
2358static inline int security_file_set_fowner(struct file *file)
2359{
2360 return 0;
2361}
2362
2363static inline int security_file_send_sigiotask(struct task_struct *tsk,
2364 struct fown_struct *fown,
2365 int sig)
2366{
2367 return 0;
2368}
2369
2370static inline int security_file_receive(struct file *file)
2371{
2372 return 0;
2373}
2374
2375static inline int security_dentry_open(struct file *file,
2376 const struct cred *cred)
2377{
2378 return 0;
2379}
2380
2381static inline int security_task_create(unsigned long clone_flags)
2382{
2383 return 0;
2384}
2385
2386static inline int security_cred_alloc_blank(struct cred *cred, gfp_t gfp)
2387{
2388 return 0;
2389}
2390
2391static inline void security_cred_free(struct cred *cred)
2392{ }
2393
2394static inline int security_prepare_creds(struct cred *new,
2395 const struct cred *old,
2396 gfp_t gfp)
2397{
2398 return 0;
2399}
2400
2401static inline void security_commit_creds(struct cred *new,
2402 const struct cred *old)
2403{
2404}
2405
2406static inline void security_transfer_creds(struct cred *new,
2407 const struct cred *old)
2408{
2409}
2410
2411static inline int security_kernel_act_as(struct cred *cred, u32 secid)
2412{
2413 return 0;
2414}
2415
2416static inline int security_kernel_create_files_as(struct cred *cred,
2417 struct inode *inode)
2418{
2419 return 0;
2420}
2421
2422static inline int security_kernel_module_request(char *kmod_name)
2423{
2424 return 0;
2425}
2426
2427static inline int security_task_setuid(uid_t id0, uid_t id1, uid_t id2,
2428 int flags)
2429{
2430 return 0;
2431}
2432
2433static inline int security_task_fix_setuid(struct cred *new,
2434 const struct cred *old,
2435 int flags)
2436{
2437 return cap_task_fix_setuid(new, old, flags);
2438}
2439
2440static inline int security_task_setgid(gid_t id0, gid_t id1, gid_t id2,
2441 int flags)
2442{
2443 return 0;
2444}
2445
2446static inline int security_task_setpgid(struct task_struct *p, pid_t pgid)
2447{
2448 return 0;
2449}
2450
2451static inline int security_task_getpgid(struct task_struct *p)
2452{
2453 return 0;
2454}
2455
2456static inline int security_task_getsid(struct task_struct *p)
2457{
2458 return 0;
2459}
2460
2461static inline void security_task_getsecid(struct task_struct *p, u32 *secid)
2462{
2463 *secid = 0;
2464}
2465
2466static inline int security_task_setgroups(struct group_info *group_info)
2467{
2468 return 0;
2469}
2470
2471static inline int security_task_setnice(struct task_struct *p, int nice)
2472{
2473 return cap_task_setnice(p, nice);
2474}
2475
2476static inline int security_task_setioprio(struct task_struct *p, int ioprio)
2477{
2478 return cap_task_setioprio(p, ioprio);
2479}
2480
2481static inline int security_task_getioprio(struct task_struct *p)
2482{
2483 return 0;
2484}
2485
2486static inline int security_task_setrlimit(unsigned int resource,
2487 struct rlimit *new_rlim)
2488{
2489 return 0;
2490}
2491
2492static inline int security_task_setscheduler(struct task_struct *p,
2493 int policy,
2494 struct sched_param *lp)
2495{
2496 return cap_task_setscheduler(p, policy, lp);
2497}
2498
2499static inline int security_task_getscheduler(struct task_struct *p)
2500{
2501 return 0;
2502}
2503
2504static inline int security_task_movememory(struct task_struct *p)
2505{
2506 return 0;
2507}
2508
2509static inline int security_task_kill(struct task_struct *p,
2510 struct siginfo *info, int sig,
2511 u32 secid)
2512{
2513 return 0;
2514}
2515
2516static inline int security_task_wait(struct task_struct *p)
2517{
2518 return 0;
2519}
2520
2521static inline int security_task_prctl(int option, unsigned long arg2,
2522 unsigned long arg3,
2523 unsigned long arg4,
2524 unsigned long arg5)
2525{
2526 return cap_task_prctl(option, arg2, arg3, arg3, arg5);
2527}
2528
2529static inline void security_task_to_inode(struct task_struct *p, struct inode *inode)
2530{ }
2531
2532static inline int security_ipc_permission(struct kern_ipc_perm *ipcp,
2533 short flag)
2534{
2535 return 0;
2536}
2537
2538static inline void security_ipc_getsecid(struct kern_ipc_perm *ipcp, u32 *secid)
2539{
2540 *secid = 0;
2541}
2542
2543static inline int security_msg_msg_alloc(struct msg_msg *msg)
2544{
2545 return 0;
2546}
2547
2548static inline void security_msg_msg_free(struct msg_msg *msg)
2549{ }
2550
2551static inline int security_msg_queue_alloc(struct msg_queue *msq)
2552{
2553 return 0;
2554}
2555
2556static inline void security_msg_queue_free(struct msg_queue *msq)
2557{ }
2558
2559static inline int security_msg_queue_associate(struct msg_queue *msq,
2560 int msqflg)
2561{
2562 return 0;
2563}
2564
2565static inline int security_msg_queue_msgctl(struct msg_queue *msq, int cmd)
2566{
2567 return 0;
2568}
2569
2570static inline int security_msg_queue_msgsnd(struct msg_queue *msq,
2571 struct msg_msg *msg, int msqflg)
2572{
2573 return 0;
2574}
2575
2576static inline int security_msg_queue_msgrcv(struct msg_queue *msq,
2577 struct msg_msg *msg,
2578 struct task_struct *target,
2579 long type, int mode)
2580{
2581 return 0;
2582}
2583
2584static inline int security_shm_alloc(struct shmid_kernel *shp)
2585{
2586 return 0;
2587}
2588
2589static inline void security_shm_free(struct shmid_kernel *shp)
2590{ }
2591
2592static inline int security_shm_associate(struct shmid_kernel *shp,
2593 int shmflg)
2594{
2595 return 0;
2596}
2597
2598static inline int security_shm_shmctl(struct shmid_kernel *shp, int cmd)
2599{
2600 return 0;
2601}
2602
2603static inline int security_shm_shmat(struct shmid_kernel *shp,
2604 char __user *shmaddr, int shmflg)
2605{
2606 return 0;
2607}
2608
2609static inline int security_sem_alloc(struct sem_array *sma)
2610{
2611 return 0;
2612}
2613
2614static inline void security_sem_free(struct sem_array *sma)
2615{ }
2616
2617static inline int security_sem_associate(struct sem_array *sma, int semflg)
2618{
2619 return 0;
2620}
2621
2622static inline int security_sem_semctl(struct sem_array *sma, int cmd)
2623{
2624 return 0;
2625}
2626
2627static inline int security_sem_semop(struct sem_array *sma,
2628 struct sembuf *sops, unsigned nsops,
2629 int alter)
2630{
2631 return 0;
2632}
2633
2634static inline void security_d_instantiate(struct dentry *dentry, struct inode *inode)
2635{ }
2636
2637static inline int security_getprocattr(struct task_struct *p, char *name, char **value)
2638{
2639 return -EINVAL;
2640}
2641
2642static inline int security_setprocattr(struct task_struct *p, char *name, void *value, size_t size)
2643{
2644 return -EINVAL;
2645}
2646
2647static inline int security_netlink_send(struct sock *sk, struct sk_buff *skb)
2648{
2649 return cap_netlink_send(sk, skb);
2650}
2651
2652static inline int security_netlink_recv(struct sk_buff *skb, int cap)
2653{
2654 return cap_netlink_recv(skb, cap);
2655}
2656
2657static inline int security_secid_to_secctx(u32 secid, char **secdata, u32 *seclen)
2658{
2659 return -EOPNOTSUPP;
2660}
2661
2662static inline int security_secctx_to_secid(const char *secdata,
2663 u32 seclen,
2664 u32 *secid)
2665{
2666 return -EOPNOTSUPP;
2667}
2668
2669static inline void security_release_secctx(char *secdata, u32 seclen)
2670{
2671}
2672
2673static inline int security_inode_notifysecctx(struct inode *inode, void *ctx, u32 ctxlen)
2674{
2675 return -EOPNOTSUPP;
2676}
2677static inline int security_inode_setsecctx(struct dentry *dentry, void *ctx, u32 ctxlen)
2678{
2679 return -EOPNOTSUPP;
2680}
2681static inline int security_inode_getsecctx(struct inode *inode, void **ctx, u32 *ctxlen)
2682{
2683 return -EOPNOTSUPP;
2684}
2685#endif
2686
2687#ifdef CONFIG_SECURITY_NETWORK
2688
2689int security_unix_stream_connect(struct socket *sock, struct socket *other,
2690 struct sock *newsk);
2691int security_unix_may_send(struct socket *sock, struct socket *other);
2692int security_socket_create(int family, int type, int protocol, int kern);
2693int security_socket_post_create(struct socket *sock, int family,
2694 int type, int protocol, int kern);
2695int security_socket_bind(struct socket *sock, struct sockaddr *address, int addrlen);
2696int security_socket_connect(struct socket *sock, struct sockaddr *address, int addrlen);
2697int security_socket_listen(struct socket *sock, int backlog);
2698int security_socket_accept(struct socket *sock, struct socket *newsock);
2699int security_socket_sendmsg(struct socket *sock, struct msghdr *msg, int size);
2700int security_socket_recvmsg(struct socket *sock, struct msghdr *msg,
2701 int size, int flags);
2702int security_socket_getsockname(struct socket *sock);
2703int security_socket_getpeername(struct socket *sock);
2704int security_socket_getsockopt(struct socket *sock, int level, int optname);
2705int security_socket_setsockopt(struct socket *sock, int level, int optname);
2706int security_socket_shutdown(struct socket *sock, int how);
2707int security_sock_rcv_skb(struct sock *sk, struct sk_buff *skb);
2708int security_socket_getpeersec_stream(struct socket *sock, char __user *optval,
2709 int __user *optlen, unsigned len);
2710int security_socket_getpeersec_dgram(struct socket *sock, struct sk_buff *skb, u32 *secid);
2711int security_sk_alloc(struct sock *sk, int family, gfp_t priority);
2712void security_sk_free(struct sock *sk);
2713void security_sk_clone(const struct sock *sk, struct sock *newsk);
2714void security_sk_classify_flow(struct sock *sk, struct flowi *fl);
2715void security_req_classify_flow(const struct request_sock *req, struct flowi *fl);
2716void security_sock_graft(struct sock*sk, struct socket *parent);
2717int security_inet_conn_request(struct sock *sk,
2718 struct sk_buff *skb, struct request_sock *req);
2719void security_inet_csk_clone(struct sock *newsk,
2720 const struct request_sock *req);
2721void security_inet_conn_established(struct sock *sk,
2722 struct sk_buff *skb);
2723int security_tun_dev_create(void);
2724void security_tun_dev_post_create(struct sock *sk);
2725int security_tun_dev_attach(struct sock *sk);
2726
2727#else
2728static inline int security_unix_stream_connect(struct socket *sock,
2729 struct socket *other,
2730 struct sock *newsk)
2731{
2732 return 0;
2733}
2734
2735static inline int security_unix_may_send(struct socket *sock,
2736 struct socket *other)
2737{
2738 return 0;
2739}
2740
2741static inline int security_socket_create(int family, int type,
2742 int protocol, int kern)
2743{
2744 return 0;
2745}
2746
2747static inline int security_socket_post_create(struct socket *sock,
2748 int family,
2749 int type,
2750 int protocol, int kern)
2751{
2752 return 0;
2753}
2754
2755static inline int security_socket_bind(struct socket *sock,
2756 struct sockaddr *address,
2757 int addrlen)
2758{
2759 return 0;
2760}
2761
2762static inline int security_socket_connect(struct socket *sock,
2763 struct sockaddr *address,
2764 int addrlen)
2765{
2766 return 0;
2767}
2768
2769static inline int security_socket_listen(struct socket *sock, int backlog)
2770{
2771 return 0;
2772}
2773
2774static inline int security_socket_accept(struct socket *sock,
2775 struct socket *newsock)
2776{
2777 return 0;
2778}
2779
2780static inline int security_socket_sendmsg(struct socket *sock,
2781 struct msghdr *msg, int size)
2782{
2783 return 0;
2784}
2785
2786static inline int security_socket_recvmsg(struct socket *sock,
2787 struct msghdr *msg, int size,
2788 int flags)
2789{
2790 return 0;
2791}
2792
2793static inline int security_socket_getsockname(struct socket *sock)
2794{
2795 return 0;
2796}
2797
2798static inline int security_socket_getpeername(struct socket *sock)
2799{
2800 return 0;
2801}
2802
2803static inline int security_socket_getsockopt(struct socket *sock,
2804 int level, int optname)
2805{
2806 return 0;
2807}
2808
2809static inline int security_socket_setsockopt(struct socket *sock,
2810 int level, int optname)
2811{
2812 return 0;
2813}
2814
2815static inline int security_socket_shutdown(struct socket *sock, int how)
2816{
2817 return 0;
2818}
2819static inline int security_sock_rcv_skb(struct sock *sk,
2820 struct sk_buff *skb)
2821{
2822 return 0;
2823}
2824
2825static inline int security_socket_getpeersec_stream(struct socket *sock, char __user *optval,
2826 int __user *optlen, unsigned len)
2827{
2828 return -ENOPROTOOPT;
2829}
2830
2831static inline int security_socket_getpeersec_dgram(struct socket *sock, struct sk_buff *skb, u32 *secid)
2832{
2833 return -ENOPROTOOPT;
2834}
2835
2836static inline int security_sk_alloc(struct sock *sk, int family, gfp_t priority)
2837{
2838 return 0;
2839}
2840
2841static inline void security_sk_free(struct sock *sk)
2842{
2843}
2844
2845static inline void security_sk_clone(const struct sock *sk, struct sock *newsk)
2846{
2847}
2848
2849static inline void security_sk_classify_flow(struct sock *sk, struct flowi *fl)
2850{
2851}
2852
2853static inline void security_req_classify_flow(const struct request_sock *req, struct flowi *fl)
2854{
2855}
2856
2857static inline void security_sock_graft(struct sock *sk, struct socket *parent)
2858{
2859}
2860
2861static inline int security_inet_conn_request(struct sock *sk,
2862 struct sk_buff *skb, struct request_sock *req)
2863{
2864 return 0;
2865}
2866
2867static inline void security_inet_csk_clone(struct sock *newsk,
2868 const struct request_sock *req)
2869{
2870}
2871
2872static inline void security_inet_conn_established(struct sock *sk,
2873 struct sk_buff *skb)
2874{
2875}
2876
2877static inline int security_tun_dev_create(void)
2878{
2879 return 0;
2880}
2881
2882static inline void security_tun_dev_post_create(struct sock *sk)
2883{
2884}
2885
2886static inline int security_tun_dev_attach(struct sock *sk)
2887{
2888 return 0;
2889}
2890#endif
2891
2892#ifdef CONFIG_SECURITY_NETWORK_XFRM
2893
2894int security_xfrm_policy_alloc(struct xfrm_sec_ctx **ctxp, struct xfrm_user_sec_ctx *sec_ctx);
2895int security_xfrm_policy_clone(struct xfrm_sec_ctx *old_ctx, struct xfrm_sec_ctx **new_ctxp);
2896void security_xfrm_policy_free(struct xfrm_sec_ctx *ctx);
2897int security_xfrm_policy_delete(struct xfrm_sec_ctx *ctx);
2898int security_xfrm_state_alloc(struct xfrm_state *x, struct xfrm_user_sec_ctx *sec_ctx);
2899int security_xfrm_state_alloc_acquire(struct xfrm_state *x,
2900 struct xfrm_sec_ctx *polsec, u32 secid);
2901int security_xfrm_state_delete(struct xfrm_state *x);
2902void security_xfrm_state_free(struct xfrm_state *x);
2903int security_xfrm_policy_lookup(struct xfrm_sec_ctx *ctx, u32 fl_secid, u8 dir);
2904int security_xfrm_state_pol_flow_match(struct xfrm_state *x,
2905 struct xfrm_policy *xp, struct flowi *fl);
2906int security_xfrm_decode_session(struct sk_buff *skb, u32 *secid);
2907void security_skb_classify_flow(struct sk_buff *skb, struct flowi *fl);
2908
2909#else
2910
2911static inline int security_xfrm_policy_alloc(struct xfrm_sec_ctx **ctxp, struct xfrm_user_sec_ctx *sec_ctx)
2912{
2913 return 0;
2914}
2915
2916static inline int security_xfrm_policy_clone(struct xfrm_sec_ctx *old, struct xfrm_sec_ctx **new_ctxp)
2917{
2918 return 0;
2919}
2920
2921static inline void security_xfrm_policy_free(struct xfrm_sec_ctx *ctx)
2922{
2923}
2924
2925static inline int security_xfrm_policy_delete(struct xfrm_sec_ctx *ctx)
2926{
2927 return 0;
2928}
2929
2930static inline int security_xfrm_state_alloc(struct xfrm_state *x,
2931 struct xfrm_user_sec_ctx *sec_ctx)
2932{
2933 return 0;
2934}
2935
2936static inline int security_xfrm_state_alloc_acquire(struct xfrm_state *x,
2937 struct xfrm_sec_ctx *polsec, u32 secid)
2938{
2939 return 0;
2940}
2941
2942static inline void security_xfrm_state_free(struct xfrm_state *x)
2943{
2944}
2945
2946static inline int security_xfrm_state_delete(struct xfrm_state *x)
2947{
2948 return 0;
2949}
2950
2951static inline int security_xfrm_policy_lookup(struct xfrm_sec_ctx *ctx, u32 fl_secid, u8 dir)
2952{
2953 return 0;
2954}
2955
2956static inline int security_xfrm_state_pol_flow_match(struct xfrm_state *x,
2957 struct xfrm_policy *xp, struct flowi *fl)
2958{
2959 return 1;
2960}
2961
2962static inline int security_xfrm_decode_session(struct sk_buff *skb, u32 *secid)
2963{
2964 return 0;
2965}
2966
2967static inline void security_skb_classify_flow(struct sk_buff *skb, struct flowi *fl)
2968{
2969}
2970
2971#endif
2972
2973#ifdef CONFIG_SECURITY_PATH
2974int security_path_unlink(struct path *dir, struct dentry *dentry);
2975int security_path_mkdir(struct path *dir, struct dentry *dentry, int mode);
2976int security_path_rmdir(struct path *dir, struct dentry *dentry);
2977int security_path_mknod(struct path *dir, struct dentry *dentry, int mode,
2978 unsigned int dev);
2979int security_path_truncate(struct path *path, loff_t length,
2980 unsigned int time_attrs);
2981int security_path_symlink(struct path *dir, struct dentry *dentry,
2982 const char *old_name);
2983int security_path_link(struct dentry *old_dentry, struct path *new_dir,
2984 struct dentry *new_dentry);
2985int security_path_rename(struct path *old_dir, struct dentry *old_dentry,
2986 struct path *new_dir, struct dentry *new_dentry);
2987int security_path_chmod(struct dentry *dentry, struct vfsmount *mnt,
2988 mode_t mode);
2989int security_path_chown(struct path *path, uid_t uid, gid_t gid);
2990int security_path_chroot(struct path *path);
2991#else
2992static inline int security_path_unlink(struct path *dir, struct dentry *dentry)
2993{
2994 return 0;
2995}
2996
2997static inline int security_path_mkdir(struct path *dir, struct dentry *dentry,
2998 int mode)
2999{
3000 return 0;
3001}
3002
3003static inline int security_path_rmdir(struct path *dir, struct dentry *dentry)
3004{
3005 return 0;
3006}
3007
3008static inline int security_path_mknod(struct path *dir, struct dentry *dentry,
3009 int mode, unsigned int dev)
3010{
3011 return 0;
3012}
3013
3014static inline int security_path_truncate(struct path *path, loff_t length,
3015 unsigned int time_attrs)
3016{
3017 return 0;
3018}
3019
3020static inline int security_path_symlink(struct path *dir, struct dentry *dentry,
3021 const char *old_name)
3022{
3023 return 0;
3024}
3025
3026static inline int security_path_link(struct dentry *old_dentry,
3027 struct path *new_dir,
3028 struct dentry *new_dentry)
3029{
3030 return 0;
3031}
3032
3033static inline int security_path_rename(struct path *old_dir,
3034 struct dentry *old_dentry,
3035 struct path *new_dir,
3036 struct dentry *new_dentry)
3037{
3038 return 0;
3039}
3040
3041static inline int security_path_chmod(struct dentry *dentry,
3042 struct vfsmount *mnt,
3043 mode_t mode)
3044{
3045 return 0;
3046}
3047
3048static inline int security_path_chown(struct path *path, uid_t uid, gid_t gid)
3049{
3050 return 0;
3051}
3052
3053static inline int security_path_chroot(struct path *path)
3054{
3055 return 0;
3056}
3057#endif
3058
3059#ifdef CONFIG_KEYS
3060#ifdef CONFIG_SECURITY
3061
3062int security_key_alloc(struct key *key, const struct cred *cred, unsigned long flags);
3063void security_key_free(struct key *key);
3064int security_key_permission(key_ref_t key_ref,
3065 const struct cred *cred, key_perm_t perm);
3066int security_key_getsecurity(struct key *key, char **_buffer);
3067int security_key_session_to_parent(const struct cred *cred,
3068 const struct cred *parent_cred,
3069 struct key *key);
3070
3071#else
3072
3073static inline int security_key_alloc(struct key *key,
3074 const struct cred *cred,
3075 unsigned long flags)
3076{
3077 return 0;
3078}
3079
3080static inline void security_key_free(struct key *key)
3081{
3082}
3083
3084static inline int security_key_permission(key_ref_t key_ref,
3085 const struct cred *cred,
3086 key_perm_t perm)
3087{
3088 return 0;
3089}
3090
3091static inline int security_key_getsecurity(struct key *key, char **_buffer)
3092{
3093 *_buffer = NULL;
3094 return 0;
3095}
3096
3097static inline int security_key_session_to_parent(const struct cred *cred,
3098 const struct cred *parent_cred,
3099 struct key *key)
3100{
3101 return 0;
3102}
3103
3104#endif
3105#endif
3106
3107#ifdef CONFIG_AUDIT
3108#ifdef CONFIG_SECURITY
3109int security_audit_rule_init(u32 field, u32 op, char *rulestr, void **lsmrule);
3110int security_audit_rule_known(struct audit_krule *krule);
3111int security_audit_rule_match(u32 secid, u32 field, u32 op, void *lsmrule,
3112 struct audit_context *actx);
3113void security_audit_rule_free(void *lsmrule);
3114
3115#else
3116
3117static inline int security_audit_rule_init(u32 field, u32 op, char *rulestr,
3118 void **lsmrule)
3119{
3120 return 0;
3121}
3122
3123static inline int security_audit_rule_known(struct audit_krule *krule)
3124{
3125 return 0;
3126}
3127
3128static inline int security_audit_rule_match(u32 secid, u32 field, u32 op,
3129 void *lsmrule, struct audit_context *actx)
3130{
3131 return 0;
3132}
3133
3134static inline void security_audit_rule_free(void *lsmrule)
3135{ }
3136
3137#endif
3138#endif
3139
3140#ifdef CONFIG_SECURITYFS
3141
3142extern struct dentry *securityfs_create_file(const char *name, mode_t mode,
3143 struct dentry *parent, void *data,
3144 const struct file_operations *fops);
3145extern struct dentry *securityfs_create_dir(const char *name, struct dentry *parent);
3146extern void securityfs_remove(struct dentry *dentry);
3147
3148#else
3149
3150static inline struct dentry *securityfs_create_dir(const char *name,
3151 struct dentry *parent)
3152{
3153 return ERR_PTR(-ENODEV);
3154}
3155
3156static inline struct dentry *securityfs_create_file(const char *name,
3157 mode_t mode,
3158 struct dentry *parent,
3159 void *data,
3160 const struct file_operations *fops)
3161{
3162 return ERR_PTR(-ENODEV);
3163}
3164
3165static inline void securityfs_remove(struct dentry *dentry)
3166{}
3167
3168#endif
3169
3170#ifdef CONFIG_SECURITY
3171
3172static inline char *alloc_secdata(void)
3173{
3174 return (char *)get_zeroed_page(GFP_KERNEL);
3175}
3176
3177static inline void free_secdata(void *secdata)
3178{
3179 free_page((unsigned long)secdata);
3180}
3181
3182#else
3183
3184static inline char *alloc_secdata(void)
3185{
3186 return (char *)1;
3187}
3188
3189static inline void free_secdata(void *secdata)
3190{ }
3191#endif
3192
3193#endif
3194
3195