• R/O
  • SSH
  • HTTPS

caitsith: Commit


Commit MetaInfo

Revision365 (tree)
Zeit2022-05-12 14:23:34
Autorkumaneko

Log Message

(empty log message)

Ändern Zusammenfassung

Diff

--- trunk/caitsith-patch/caitsith/permission.c (revision 364)
+++ trunk/caitsith-patch/caitsith/permission.c (revision 365)
@@ -171,6 +171,29 @@
171171
172172 /***** SECTION4: Standalone functions section *****/
173173
174+#if defined(RHEL_MAJOR) && RHEL_MAJOR == 8 && defined(RHEL_MINOR) && RHEL_MINOR >= 6
175+
176+/**
177+ * prepare_binprm - Read the first BINPRM_BUF_SIZE bytes.
178+ *
179+ * @bprm: Pointer to "struct linux_binprm".
180+ *
181+ * This is not the same with prepare_binprm() in fs/exec.c due to not exported
182+ * bprm_fill_uid()/security_bprm_repopulate_creds(). I guess that RHBZ#1993665
183+ * decided to accept a not-yet-upstreamed "exec: Control flow simplifications"
184+ * feature. But since this path is used by execute_handler, I assume that
185+ * suid/sgid is not set on programs called via this path.
186+ */
187+static int prepare_binprm(struct linux_binprm *bprm)
188+{
189+ loff_t pos = 0;
190+
191+ memset(bprm->buf, 0, BINPRM_BUF_SIZE);
192+ return kernel_read(bprm->file, bprm->buf, BINPRM_BUF_SIZE, &pos);
193+}
194+
195+#endif
196+
174197 #if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 8, 0)
175198
176199 /**
--- trunk/caitsith-patch/caitsith/probe.c (revision 364)
+++ trunk/caitsith-patch/caitsith/probe.c (revision 365)
@@ -583,6 +583,46 @@
583583 return NULL;
584584 }
585585
586+#elif defined(RHEL_MAJOR) && RHEL_MAJOR == 8 && defined(RHEL_MINOR) && RHEL_MINOR >= 6
587+
588+/**
589+ * probe_security_hook_heads - Find address of "struct security_hook_heads security_hook_heads".
590+ *
591+ * Returns pointer to "struct security_hook_heads" on success, NULL otherwise.
592+ */
593+struct security_hook_heads * __init probe_security_hook_heads(void)
594+{
595+ const unsigned int offset = offsetof(struct security_hook_heads,
596+ bprm_committed_creds);
597+ void *cp;
598+ struct security_hook_heads *shh;
599+ struct security_hook_list *entry;
600+ void *cap = probe_find_symbol(" cap_bprm_repopulate_creds\n");
601+
602+ /* Get location of cap_bprm_repopulate_creds(). */
603+ cap = check_function_address(cap, "cap_bprm_repopulate_creds");
604+ if (!cap)
605+ return NULL;
606+ /* Guess "struct security_hook_heads security_hook_heads;". */
607+ cp = probe_find_variable(probe_security_bprm_committed_creds,
608+ ((unsigned long)
609+ &probe_dummy_security_hook_heads) + offset,
610+ " security_bprm_committed_creds\n");
611+ if (!cp) {
612+ printk(KERN_ERR
613+ "Can't resolve security_bprm_committed_creds().\n");
614+ return NULL;
615+ }
616+ /* This should be "struct security_hook_heads security_hook_heads;". */
617+ shh = ((void *) (*(unsigned long *) cp)) - offset;
618+ hlist_for_each_entry(entry, &shh->bprm_repopulate_creds, list)
619+ if (entry->hook.bprm_repopulate_creds == cap)
620+ return shh;
621+ printk(KERN_ERR "Guessed security_hook_heads is 0x%lx\n",
622+ (unsigned long) shh);
623+ return NULL;
624+}
625+
586626 #elif defined(LSM_HOOK_INIT)
587627
588628 /**
--- trunk/caitsith-patch/patches/ccs-patch-4.14.diff (revision 364)
+++ trunk/caitsith-patch/patches/ccs-patch-4.14.diff (revision 365)
@@ -1,6 +1,6 @@
1-This is TOMOYO Linux patch for kernel 4.14.275.
1+This is TOMOYO Linux patch for kernel 4.14.277.
22
3-Source code for this patch is https://www.kernel.org/pub/linux/kernel/v4.x/linux-4.14.275.tar.xz
3+Source code for this patch is https://www.kernel.org/pub/linux/kernel/v4.x/linux-4.14.277.tar.xz
44 ---
55 fs/exec.c | 2 -
66 fs/open.c | 2 +
@@ -28,8 +28,8 @@
2828 security/security.c | 9 +++++-
2929 24 files changed, 153 insertions(+), 29 deletions(-)
3030
31---- linux-4.14.275.orig/fs/exec.c
32-+++ linux-4.14.275/fs/exec.c
31+--- linux-4.14.277.orig/fs/exec.c
32++++ linux-4.14.277/fs/exec.c
3333 @@ -1692,7 +1692,7 @@ static int exec_binprm(struct linux_binp
3434 old_vpid = task_pid_nr_ns(current, task_active_pid_ns(current->parent));
3535 rcu_read_unlock();
@@ -39,8 +39,8 @@
3939 if (ret >= 0) {
4040 audit_bprm(bprm);
4141 trace_sched_process_exec(current, old_pid, bprm);
42---- linux-4.14.275.orig/fs/open.c
43-+++ linux-4.14.275/fs/open.c
42+--- linux-4.14.277.orig/fs/open.c
43++++ linux-4.14.277/fs/open.c
4444 @@ -1193,6 +1193,8 @@ EXPORT_SYMBOL(sys_close);
4545 */
4646 SYSCALL_DEFINE0(vhangup)
@@ -50,8 +50,8 @@
5050 if (capable(CAP_SYS_TTY_CONFIG)) {
5151 tty_vhangup_self();
5252 return 0;
53---- linux-4.14.275.orig/fs/proc/version.c
54-+++ linux-4.14.275/fs/proc/version.c
53+--- linux-4.14.277.orig/fs/proc/version.c
54++++ linux-4.14.277/fs/proc/version.c
5555 @@ -33,3 +33,10 @@ static int __init proc_version_init(void
5656 return 0;
5757 }
@@ -59,12 +59,12 @@
5959 +
6060 +static int __init ccs_show_version(void)
6161 +{
62-+ printk(KERN_INFO "Hook version: 4.14.275 2022/04/04\n");
62++ printk(KERN_INFO "Hook version: 4.14.277 2022/05/02\n");
6363 + return 0;
6464 +}
6565 +fs_initcall(ccs_show_version);
66---- linux-4.14.275.orig/include/linux/init_task.h
67-+++ linux-4.14.275/include/linux/init_task.h
66+--- linux-4.14.277.orig/include/linux/init_task.h
67++++ linux-4.14.277/include/linux/init_task.h
6868 @@ -219,6 +219,14 @@ extern struct cred init_cred;
6969 #define INIT_TASK_SECURITY
7070 #endif
@@ -88,8 +88,8 @@
8888 }
8989
9090
91---- linux-4.14.275.orig/include/linux/sched.h
92-+++ linux-4.14.275/include/linux/sched.h
91+--- linux-4.14.277.orig/include/linux/sched.h
92++++ linux-4.14.277/include/linux/sched.h
9393 @@ -33,6 +33,7 @@ struct audit_context;
9494 struct backing_dev_info;
9595 struct bio_list;
@@ -109,8 +109,8 @@
109109
110110 /*
111111 * New fields for task_struct should be added above here, so that
112---- linux-4.14.275.orig/include/linux/security.h
113-+++ linux-4.14.275/include/linux/security.h
112+--- linux-4.14.277.orig/include/linux/security.h
113++++ linux-4.14.277/include/linux/security.h
114114 @@ -56,6 +56,7 @@ struct msg_queue;
115115 struct xattr;
116116 struct xfrm_sec_ctx;
@@ -331,8 +331,8 @@
331331 }
332332 #endif /* CONFIG_SECURITY_PATH */
333333
334---- linux-4.14.275.orig/include/net/ip.h
335-+++ linux-4.14.275/include/net/ip.h
334+--- linux-4.14.277.orig/include/net/ip.h
335++++ linux-4.14.277/include/net/ip.h
336336 @@ -266,6 +266,8 @@ void inet_get_local_port_range(struct ne
337337 #ifdef CONFIG_SYSCTL
338338 static inline int inet_is_local_reserved_port(struct net *net, int port)
@@ -351,8 +351,8 @@
351351 return 0;
352352 }
353353
354---- linux-4.14.275.orig/kernel/kexec.c
355-+++ linux-4.14.275/kernel/kexec.c
354+--- linux-4.14.277.orig/kernel/kexec.c
355++++ linux-4.14.277/kernel/kexec.c
356356 @@ -17,7 +17,7 @@
357357 #include <linux/syscalls.h>
358358 #include <linux/vmalloc.h>
@@ -371,8 +371,8 @@
371371
372372 /*
373373 * Verify we have a legal set of flags
374---- linux-4.14.275.orig/kernel/module.c
375-+++ linux-4.14.275/kernel/module.c
374+--- linux-4.14.277.orig/kernel/module.c
375++++ linux-4.14.277/kernel/module.c
376376 @@ -66,6 +66,7 @@
377377 #include <linux/audit.h>
378378 #include <uapi/linux/module.h>
@@ -399,9 +399,9 @@
399399
400400 return 0;
401401 }
402---- linux-4.14.275.orig/kernel/ptrace.c
403-+++ linux-4.14.275/kernel/ptrace.c
404-@@ -1169,6 +1169,11 @@ SYSCALL_DEFINE4(ptrace, long, request, l
402+--- linux-4.14.277.orig/kernel/ptrace.c
403++++ linux-4.14.277/kernel/ptrace.c
404+@@ -1186,6 +1186,11 @@ SYSCALL_DEFINE4(ptrace, long, request, l
405405 {
406406 struct task_struct *child;
407407 long ret;
@@ -413,7 +413,7 @@
413413
414414 if (request == PTRACE_TRACEME) {
415415 ret = ptrace_traceme();
416-@@ -1318,6 +1323,11 @@ COMPAT_SYSCALL_DEFINE4(ptrace, compat_lo
416+@@ -1335,6 +1340,11 @@ COMPAT_SYSCALL_DEFINE4(ptrace, compat_lo
417417 {
418418 struct task_struct *child;
419419 long ret;
@@ -425,8 +425,8 @@
425425
426426 if (request == PTRACE_TRACEME) {
427427 ret = ptrace_traceme();
428---- linux-4.14.275.orig/kernel/reboot.c
429-+++ linux-4.14.275/kernel/reboot.c
428+--- linux-4.14.277.orig/kernel/reboot.c
429++++ linux-4.14.277/kernel/reboot.c
430430 @@ -16,6 +16,7 @@
431431 #include <linux/syscalls.h>
432432 #include <linux/syscore_ops.h>
@@ -444,8 +444,8 @@
444444
445445 /*
446446 * If pid namespaces are enabled and the current task is in a child
447---- linux-4.14.275.orig/kernel/sched/core.c
448-+++ linux-4.14.275/kernel/sched/core.c
447+--- linux-4.14.277.orig/kernel/sched/core.c
448++++ linux-4.14.277/kernel/sched/core.c
449449 @@ -3859,6 +3859,8 @@ int can_nice(const struct task_struct *p
450450 SYSCALL_DEFINE1(nice, int, increment)
451451 {
@@ -455,8 +455,8 @@
455455
456456 /*
457457 * Setpriority might change our priority at the same moment.
458---- linux-4.14.275.orig/kernel/signal.c
459-+++ linux-4.14.275/kernel/signal.c
458+--- linux-4.14.277.orig/kernel/signal.c
459++++ linux-4.14.277/kernel/signal.c
460460 @@ -3031,6 +3031,8 @@ COMPAT_SYSCALL_DEFINE4(rt_sigtimedwait,
461461 SYSCALL_DEFINE2(kill, pid_t, pid, int, sig)
462462 {
@@ -502,8 +502,8 @@
502502
503503 return do_send_specific(tgid, pid, sig, info);
504504 }
505---- linux-4.14.275.orig/kernel/sys.c
506-+++ linux-4.14.275/kernel/sys.c
505+--- linux-4.14.277.orig/kernel/sys.c
506++++ linux-4.14.277/kernel/sys.c
507507 @@ -193,6 +193,10 @@ SYSCALL_DEFINE3(setpriority, int, which,
508508
509509 if (which > PRIO_USER || which < PRIO_PROCESS)
@@ -533,8 +533,8 @@
533533
534534 errno = -EFAULT;
535535 if (!copy_from_user(tmp, name, len)) {
536---- linux-4.14.275.orig/kernel/time/ntp.c
537-+++ linux-4.14.275/kernel/time/ntp.c
536+--- linux-4.14.277.orig/kernel/time/ntp.c
537++++ linux-4.14.277/kernel/time/ntp.c
538538 @@ -18,6 +18,7 @@
539539 #include <linux/module.h>
540540 #include <linux/rtc.h>
@@ -568,8 +568,8 @@
568568
569569 if (txc->modes & ADJ_NANO) {
570570 struct timespec ts;
571---- linux-4.14.275.orig/net/ipv4/raw.c
572-+++ linux-4.14.275/net/ipv4/raw.c
571+--- linux-4.14.277.orig/net/ipv4/raw.c
572++++ linux-4.14.277/net/ipv4/raw.c
573573 @@ -771,6 +771,10 @@ static int raw_recvmsg(struct sock *sk,
574574 skb = skb_recv_datagram(sk, flags, noblock, &err);
575575 if (!skb)
@@ -581,8 +581,8 @@
581581
582582 copied = skb->len;
583583 if (len < copied) {
584---- linux-4.14.275.orig/net/ipv4/udp.c
585-+++ linux-4.14.275/net/ipv4/udp.c
584+--- linux-4.14.277.orig/net/ipv4/udp.c
585++++ linux-4.14.277/net/ipv4/udp.c
586586 @@ -1608,6 +1608,8 @@ try_again:
587587 skb = __skb_recv_udp(sk, flags, noblock, &peeked, &off, &err);
588588 if (!skb)
@@ -592,8 +592,8 @@
592592
593593 ulen = udp_skb_len(skb);
594594 copied = len;
595---- linux-4.14.275.orig/net/ipv6/raw.c
596-+++ linux-4.14.275/net/ipv6/raw.c
595+--- linux-4.14.277.orig/net/ipv6/raw.c
596++++ linux-4.14.277/net/ipv6/raw.c
597597 @@ -485,6 +485,10 @@ static int rawv6_recvmsg(struct sock *sk
598598 skb = skb_recv_datagram(sk, flags, noblock, &err);
599599 if (!skb)
@@ -605,8 +605,8 @@
605605
606606 copied = skb->len;
607607 if (copied > len) {
608---- linux-4.14.275.orig/net/ipv6/udp.c
609-+++ linux-4.14.275/net/ipv6/udp.c
608+--- linux-4.14.277.orig/net/ipv6/udp.c
609++++ linux-4.14.277/net/ipv6/udp.c
610610 @@ -371,6 +371,8 @@ try_again:
611611 skb = __skb_recv_udp(sk, flags, noblock, &peeked, &off, &err);
612612 if (!skb)
@@ -616,8 +616,8 @@
616616
617617 ulen = udp6_skb_len(skb);
618618 copied = len;
619---- linux-4.14.275.orig/net/socket.c
620-+++ linux-4.14.275/net/socket.c
619+--- linux-4.14.277.orig/net/socket.c
620++++ linux-4.14.277/net/socket.c
621621 @@ -1588,6 +1588,10 @@ SYSCALL_DEFINE4(accept4, int, fd, struct
622622 if (err < 0)
623623 goto out_fd;
@@ -629,8 +629,8 @@
629629 if (upeer_sockaddr) {
630630 if (newsock->ops->getname(newsock, (struct sockaddr *)&address,
631631 &len, 2) < 0) {
632---- linux-4.14.275.orig/net/unix/af_unix.c
633-+++ linux-4.14.275/net/unix/af_unix.c
632+--- linux-4.14.277.orig/net/unix/af_unix.c
633++++ linux-4.14.277/net/unix/af_unix.c
634634 @@ -2173,6 +2173,10 @@ static int unix_dgram_recvmsg(struct soc
635635 POLLOUT | POLLWRNORM |
636636 POLLWRBAND);
@@ -650,8 +650,8 @@
650650 mutex_unlock(&u->iolock);
651651 out:
652652 return err;
653---- linux-4.14.275.orig/security/Kconfig
654-+++ linux-4.14.275/security/Kconfig
653+--- linux-4.14.277.orig/security/Kconfig
654++++ linux-4.14.277/security/Kconfig
655655 @@ -263,5 +263,7 @@ config DEFAULT_SECURITY
656656 default "apparmor" if DEFAULT_SECURITY_APPARMOR
657657 default "" if DEFAULT_SECURITY_DAC
@@ -660,8 +660,8 @@
660660 +
661661 endmenu
662662
663---- linux-4.14.275.orig/security/Makefile
664-+++ linux-4.14.275/security/Makefile
663+--- linux-4.14.277.orig/security/Makefile
664++++ linux-4.14.277/security/Makefile
665665 @@ -30,3 +30,6 @@ obj-$(CONFIG_CGROUP_DEVICE) += device_c
666666 # Object integrity file lists
667667 subdir-$(CONFIG_INTEGRITY) += integrity
@@ -669,8 +669,8 @@
669669 +
670670 +subdir-$(CONFIG_CCSECURITY) += ccsecurity
671671 +obj-$(CONFIG_CCSECURITY) += ccsecurity/
672---- linux-4.14.275.orig/security/security.c
673-+++ linux-4.14.275/security/security.c
672+--- linux-4.14.277.orig/security/security.c
673++++ linux-4.14.277/security/security.c
674674 @@ -978,12 +978,19 @@ int security_file_open(struct file *file
675675
676676 int security_task_alloc(struct task_struct *task, unsigned long clone_flags)
--- trunk/caitsith-patch/patches/ccs-patch-4.18-centos-8.diff (revision 364)
+++ trunk/caitsith-patch/patches/ccs-patch-4.18-centos-8.diff (revision 365)
@@ -1,6 +1,6 @@
1-This is TOMOYO Linux patch for CentOS 8.
1+This is TOMOYO Linux patch for CentOS Stream 8.
22
3-Source code for this patch is https://vault.centos.org/8.4.2105/BaseOS/Source/SPackages/kernel-4.18.0-305.25.1.el8_4.src.rpm
3+Source code for this patch is https://vault.centos.org/centos/8-stream/BaseOS/Source/SPackages/kernel-4.18.0-383.el8.src.rpm
44 ---
55 fs/exec.c | 2 -
66 fs/open.c | 2 +
@@ -25,12 +25,12 @@
2525 net/unix/af_unix.c | 5 +++
2626 security/Kconfig | 2 +
2727 security/Makefile | 3 ++
28- security/security.c | 9 +++++-
29- 24 files changed, 148 insertions(+), 29 deletions(-)
28+ security/security.c | 5 ++-
29+ 24 files changed, 144 insertions(+), 29 deletions(-)
3030
31---- linux-4.18.0-305.25.1.el8.orig/fs/exec.c
32-+++ linux-4.18.0-305.25.1.el8/fs/exec.c
33-@@ -1707,7 +1707,7 @@ static int exec_binprm(struct linux_binp
31+--- linux-4.18.0-383.el8.orig/fs/exec.c
32++++ linux-4.18.0-383.el8/fs/exec.c
33+@@ -1748,7 +1748,7 @@ static int exec_binprm(struct linux_binp
3434 old_vpid = task_pid_nr_ns(current, task_active_pid_ns(current->parent));
3535 rcu_read_unlock();
3636
@@ -39,8 +39,8 @@
3939 if (ret >= 0) {
4040 audit_bprm(bprm);
4141 trace_sched_process_exec(current, old_pid, bprm);
42---- linux-4.18.0-305.25.1.el8.orig/fs/open.c
43-+++ linux-4.18.0-305.25.1.el8/fs/open.c
42+--- linux-4.18.0-383.el8.orig/fs/open.c
43++++ linux-4.18.0-383.el8/fs/open.c
4444 @@ -1237,6 +1237,8 @@ SYSCALL_DEFINE3(close_range, unsigned in
4545 */
4646 SYSCALL_DEFINE0(vhangup)
@@ -50,8 +50,8 @@
5050 if (capable(CAP_SYS_TTY_CONFIG)) {
5151 tty_vhangup_self();
5252 return 0;
53---- linux-4.18.0-305.25.1.el8.orig/fs/proc/version.c
54-+++ linux-4.18.0-305.25.1.el8/fs/proc/version.c
53+--- linux-4.18.0-383.el8.orig/fs/proc/version.c
54++++ linux-4.18.0-383.el8/fs/proc/version.c
5555 @@ -21,3 +21,10 @@ static int __init proc_version_init(void
5656 return 0;
5757 }
@@ -59,12 +59,12 @@
5959 +
6060 +static int __init ccs_show_version(void)
6161 +{
62-+ printk(KERN_INFO "Hook version: 4.18.0-305.25.1.el8_4 2021/11/15\n");
62++ printk(KERN_INFO "Hook version: 4.18.0-383.el8 2022/05/11\n");
6363 + return 0;
6464 +}
6565 +fs_initcall(ccs_show_version);
66---- linux-4.18.0-305.25.1.el8.orig/include/linux/sched.h
67-+++ linux-4.18.0-305.25.1.el8/include/linux/sched.h
66+--- linux-4.18.0-383.el8.orig/include/linux/sched.h
67++++ linux-4.18.0-383.el8/include/linux/sched.h
6868 @@ -41,6 +41,7 @@ struct audit_context;
6969 struct backing_dev_info;
7070 struct bio_list;
@@ -73,7 +73,7 @@
7373 struct cfs_rq;
7474 struct fs_struct;
7575 struct futex_pi_state;
76-@@ -1266,6 +1267,10 @@ struct task_struct {
76+@@ -1408,6 +1409,10 @@ struct task_struct {
7777 /* Used by LSM modules for access restriction: */
7878 void *security;
7979 #endif
@@ -84,9 +84,9 @@
8484
8585 /*
8686 * New fields for task_struct should be added above here, so that
87---- linux-4.18.0-305.25.1.el8.orig/include/linux/security.h
88-+++ linux-4.18.0-305.25.1.el8/include/linux/security.h
89-@@ -57,6 +57,7 @@ struct mm_struct;
87+--- linux-4.18.0-383.el8.orig/include/linux/security.h
88++++ linux-4.18.0-383.el8/include/linux/security.h
89+@@ -56,6 +56,7 @@ struct mm_struct;
9090 struct fs_context;
9191 struct fs_parameter;
9292 enum fs_value_type;
@@ -94,7 +94,7 @@
9494
9595 /* Default (no) options for the capable function */
9696 #define CAP_OPT_NONE 0x0
97-@@ -500,7 +501,10 @@ static inline int security_syslog(int ty
97+@@ -503,7 +504,10 @@ static inline int security_syslog(int ty
9898 static inline int security_settime64(const struct timespec64 *ts,
9999 const struct timezone *tz)
100100 {
@@ -106,7 +106,7 @@
106106 }
107107
108108 static inline int security_vm_enough_memory_mm(struct mm_struct *mm, long pages)
109-@@ -577,18 +581,18 @@ static inline int security_sb_mount(cons
109+@@ -592,18 +596,18 @@ static inline int security_sb_mount(cons
110110 const char *type, unsigned long flags,
111111 void *data)
112112 {
@@ -128,7 +128,7 @@
128128 }
129129
130130 static inline int security_sb_set_mnt_opts(struct super_block *sb,
131-@@ -744,7 +748,7 @@ static inline int security_inode_setattr
131+@@ -759,7 +763,7 @@ static inline int security_inode_setattr
132132
133133 static inline int security_inode_getattr(const struct path *path)
134134 {
@@ -137,7 +137,7 @@
137137 }
138138
139139 static inline int security_inode_setxattr(struct dentry *dentry,
140-@@ -836,7 +840,7 @@ static inline void security_file_free(st
140+@@ -851,7 +855,7 @@ static inline void security_file_free(st
141141 static inline int security_file_ioctl(struct file *file, unsigned int cmd,
142142 unsigned long arg)
143143 {
@@ -146,7 +146,7 @@
146146 }
147147
148148 static inline int security_mmap_file(struct file *file, unsigned long prot,
149-@@ -865,7 +869,7 @@ static inline int security_file_lock(str
149+@@ -880,7 +884,7 @@ static inline int security_file_lock(str
150150 static inline int security_file_fcntl(struct file *file, unsigned int cmd,
151151 unsigned long arg)
152152 {
@@ -155,7 +155,7 @@
155155 }
156156
157157 static inline void security_file_set_fowner(struct file *file)
158-@@ -887,17 +891,19 @@ static inline int security_file_receive(
158+@@ -902,17 +906,19 @@ static inline int security_file_receive(
159159
160160 static inline int security_file_open(struct file *file)
161161 {
@@ -178,7 +178,7 @@
178178
179179 static inline int security_cred_alloc_blank(struct cred *cred, gfp_t gfp)
180180 {
181-@@ -1269,7 +1275,7 @@ static inline int security_unix_may_send
181+@@ -1289,7 +1295,7 @@ static inline int security_unix_may_send
182182 static inline int security_socket_create(int family, int type,
183183 int protocol, int kern)
184184 {
@@ -187,7 +187,7 @@
187187 }
188188
189189 static inline int security_socket_post_create(struct socket *sock,
190-@@ -1290,19 +1296,19 @@ static inline int security_socket_bind(s
190+@@ -1310,19 +1316,19 @@ static inline int security_socket_bind(s
191191 struct sockaddr *address,
192192 int addrlen)
193193 {
@@ -210,7 +210,7 @@
210210 }
211211
212212 static inline int security_socket_accept(struct socket *sock,
213-@@ -1314,7 +1320,7 @@ static inline int security_socket_accept
213+@@ -1334,7 +1340,7 @@ static inline int security_socket_accept
214214 static inline int security_socket_sendmsg(struct socket *sock,
215215 struct msghdr *msg, int size)
216216 {
@@ -219,7 +219,7 @@
219219 }
220220
221221 static inline int security_socket_recvmsg(struct socket *sock,
222-@@ -1601,42 +1607,42 @@ int security_path_chroot(const struct pa
222+@@ -1627,42 +1633,42 @@ int security_path_chroot(const struct pa
223223 #else /* CONFIG_SECURITY_PATH */
224224 static inline int security_path_unlink(const struct path *dir, struct dentry *dentry)
225225 {
@@ -269,7 +269,7 @@
269269 }
270270
271271 static inline int security_path_rename(const struct path *old_dir,
272-@@ -1645,22 +1651,32 @@ static inline int security_path_rename(c
272+@@ -1671,22 +1677,32 @@ static inline int security_path_rename(c
273273 struct dentry *new_dentry,
274274 unsigned int flags)
275275 {
@@ -306,29 +306,29 @@
306306 }
307307 #endif /* CONFIG_SECURITY_PATH */
308308
309---- linux-4.18.0-305.25.1.el8.orig/include/net/ip.h
310-+++ linux-4.18.0-305.25.1.el8/include/net/ip.h
311-@@ -286,6 +286,8 @@ void inet_get_local_port_range(struct ne
309+--- linux-4.18.0-383.el8.orig/include/net/ip.h
310++++ linux-4.18.0-383.el8/include/net/ip.h
311+@@ -282,6 +282,8 @@ void inet_get_local_port_range(struct ne
312312 #ifdef CONFIG_SYSCTL
313- static inline int inet_is_local_reserved_port(struct net *net, int port)
313+ static inline bool inet_is_local_reserved_port(struct net *net, int port)
314314 {
315315 + if (ccs_lport_reserved(port))
316-+ return 1;
316++ return true;
317317 if (!net->ipv4.sysctl_local_reserved_ports)
318- return 0;
318+ return false;
319319 return test_bit(port, net->ipv4.sysctl_local_reserved_ports);
320-@@ -304,6 +306,8 @@ static inline int inet_prot_sock(struct
320+@@ -300,6 +302,8 @@ static inline bool inet_port_requires_bi
321321 #else
322- static inline int inet_is_local_reserved_port(struct net *net, int port)
322+ static inline bool inet_is_local_reserved_port(struct net *net, int port)
323323 {
324324 + if (ccs_lport_reserved(port))
325-+ return 1;
326- return 0;
325++ return true;
326+ return false;
327327 }
328328
329---- linux-4.18.0-305.25.1.el8.orig/init/init_task.c
330-+++ linux-4.18.0-305.25.1.el8/init/init_task.c
331-@@ -196,6 +196,10 @@ struct task_struct init_task
329+--- linux-4.18.0-383.el8.orig/init/init_task.c
330++++ linux-4.18.0-383.el8/init/init_task.c
331+@@ -217,6 +217,10 @@ struct task_struct init_task
332332 #ifdef CONFIG_SECURITY
333333 .security = NULL,
334334 #endif
@@ -339,8 +339,8 @@
339339 };
340340 EXPORT_SYMBOL(init_task);
341341
342---- linux-4.18.0-305.25.1.el8.orig/kernel/kexec.c
343-+++ linux-4.18.0-305.25.1.el8/kernel/kexec.c
342+--- linux-4.18.0-383.el8.orig/kernel/kexec.c
343++++ linux-4.18.0-383.el8/kernel/kexec.c
344344 @@ -18,7 +18,7 @@
345345 #include <linux/syscalls.h>
346346 #include <linux/vmalloc.h>
@@ -359,8 +359,8 @@
359359
360360 /* Permit LSMs and IMA to fail the kexec */
361361 result = security_kernel_load_data(LOADING_KEXEC_IMAGE);
362---- linux-4.18.0-305.25.1.el8.orig/kernel/module.c
363-+++ linux-4.18.0-305.25.1.el8/kernel/module.c
362+--- linux-4.18.0-383.el8.orig/kernel/module.c
363++++ linux-4.18.0-383.el8/kernel/module.c
364364 @@ -67,6 +67,7 @@
365365 #include <linux/audit.h>
366366 #include <uapi/linux/module.h>
@@ -369,7 +369,7 @@
369369
370370 #define CREATE_TRACE_POINTS
371371 #include <trace/events/module.h>
372-@@ -961,6 +962,8 @@ SYSCALL_DEFINE2(delete_module, const cha
372+@@ -990,6 +991,8 @@ SYSCALL_DEFINE2(delete_module, const cha
373373
374374 if (!capable(CAP_SYS_MODULE) || modules_disabled)
375375 return -EPERM;
@@ -378,7 +378,7 @@
378378
379379 if (strncpy_from_user(name, name_user, MODULE_NAME_LEN-1) < 0)
380380 return -EFAULT;
381-@@ -3566,6 +3569,8 @@ static int may_init_module(void)
381+@@ -3600,6 +3603,8 @@ static int may_init_module(void)
382382 {
383383 if (!capable(CAP_SYS_MODULE) || modules_disabled)
384384 return -EPERM;
@@ -387,9 +387,9 @@
387387
388388 return 0;
389389 }
390---- linux-4.18.0-305.25.1.el8.orig/kernel/ptrace.c
391-+++ linux-4.18.0-305.25.1.el8/kernel/ptrace.c
392-@@ -1119,6 +1119,11 @@ SYSCALL_DEFINE4(ptrace, long, request, l
390+--- linux-4.18.0-383.el8.orig/kernel/ptrace.c
391++++ linux-4.18.0-383.el8/kernel/ptrace.c
392+@@ -1137,6 +1137,11 @@ SYSCALL_DEFINE4(ptrace, long, request, l
393393 {
394394 struct task_struct *child;
395395 long ret;
@@ -401,7 +401,7 @@
401401
402402 if (request == PTRACE_TRACEME) {
403403 ret = ptrace_traceme();
404-@@ -1266,6 +1271,11 @@ COMPAT_SYSCALL_DEFINE4(ptrace, compat_lo
404+@@ -1284,6 +1289,11 @@ COMPAT_SYSCALL_DEFINE4(ptrace, compat_lo
405405 {
406406 struct task_struct *child;
407407 long ret;
@@ -413,8 +413,8 @@
413413
414414 if (request == PTRACE_TRACEME) {
415415 ret = ptrace_traceme();
416---- linux-4.18.0-305.25.1.el8.orig/kernel/reboot.c
417-+++ linux-4.18.0-305.25.1.el8/kernel/reboot.c
416+--- linux-4.18.0-383.el8.orig/kernel/reboot.c
417++++ linux-4.18.0-383.el8/kernel/reboot.c
418418 @@ -16,6 +16,7 @@
419419 #include <linux/syscalls.h>
420420 #include <linux/syscore_ops.h>
@@ -432,9 +432,9 @@
432432
433433 /*
434434 * If pid namespaces are enabled and the current task is in a child
435---- linux-4.18.0-305.25.1.el8.orig/kernel/sched/core.c
436-+++ linux-4.18.0-305.25.1.el8/kernel/sched/core.c
437-@@ -4347,6 +4347,8 @@ int can_nice(const struct task_struct *p
435+--- linux-4.18.0-383.el8.orig/kernel/sched/core.c
436++++ linux-4.18.0-383.el8/kernel/sched/core.c
437+@@ -5022,6 +5022,8 @@ int can_nice(const struct task_struct *p
438438 SYSCALL_DEFINE1(nice, int, increment)
439439 {
440440 long nice, retval;
@@ -443,18 +443,18 @@
443443
444444 /*
445445 * Setpriority might change our priority at the same moment.
446---- linux-4.18.0-305.25.1.el8.orig/kernel/signal.c
447-+++ linux-4.18.0-305.25.1.el8/kernel/signal.c
448-@@ -3533,6 +3533,8 @@ SYSCALL_DEFINE2(kill, pid_t, pid, int, s
446+--- linux-4.18.0-383.el8.orig/kernel/signal.c
447++++ linux-4.18.0-383.el8/kernel/signal.c
448+@@ -3547,6 +3547,8 @@ SYSCALL_DEFINE2(kill, pid_t, pid, int, s
449449 {
450450 struct kernel_siginfo info;
451451
452452 + if (ccs_kill_permission(pid, sig))
453453 + return -EPERM;
454- clear_siginfo(&info);
455- info.si_signo = sig;
456- info.si_errno = 0;
457-@@ -3602,6 +3604,8 @@ SYSCALL_DEFINE3(tgkill, pid_t, tgid, pid
454+ prepare_kill_siginfo(sig, &info);
455+
456+ return kill_something_info(sig, &info, pid);
457+@@ -3729,6 +3731,8 @@ SYSCALL_DEFINE3(tgkill, pid_t, tgid, pid
458458 /* This is only valid for single tasks */
459459 if (pid <= 0 || tgid <= 0)
460460 return -EINVAL;
@@ -463,7 +463,7 @@
463463
464464 return do_tkill(tgid, pid, sig);
465465 }
466-@@ -3618,6 +3622,8 @@ SYSCALL_DEFINE2(tkill, pid_t, pid, int,
466+@@ -3745,6 +3749,8 @@ SYSCALL_DEFINE2(tkill, pid_t, pid, int,
467467 /* This is only valid for single tasks */
468468 if (pid <= 0)
469469 return -EINVAL;
@@ -472,7 +472,7 @@
472472
473473 return do_tkill(0, pid, sig);
474474 }
475-@@ -3631,6 +3637,8 @@ static int do_rt_sigqueueinfo(pid_t pid,
475+@@ -3758,6 +3764,8 @@ static int do_rt_sigqueueinfo(pid_t pid,
476476 (task_pid_vnr(current) != pid))
477477 return -EPERM;
478478
@@ -481,7 +481,7 @@
481481 /* POSIX.1b doesn't mention process groups. */
482482 return kill_proc_info(sig, info, pid);
483483 }
484-@@ -3678,6 +3686,8 @@ static int do_rt_tgsigqueueinfo(pid_t tg
484+@@ -3805,6 +3813,8 @@ static int do_rt_tgsigqueueinfo(pid_t tg
485485 (task_pid_vnr(current) != pid))
486486 return -EPERM;
487487
@@ -490,9 +490,9 @@
490490 return do_send_specific(tgid, pid, sig, info);
491491 }
492492
493---- linux-4.18.0-305.25.1.el8.orig/kernel/sys.c
494-+++ linux-4.18.0-305.25.1.el8/kernel/sys.c
495-@@ -208,6 +208,10 @@ SYSCALL_DEFINE3(setpriority, int, which,
493+--- linux-4.18.0-383.el8.orig/kernel/sys.c
494++++ linux-4.18.0-383.el8/kernel/sys.c
495+@@ -210,6 +210,10 @@ SYSCALL_DEFINE3(setpriority, int, which,
496496
497497 if (which > PRIO_USER || which < PRIO_PROCESS)
498498 goto out;
@@ -503,7 +503,7 @@
503503
504504 /* normalize: avoid signed division (rounding problems) */
505505 error = -ESRCH;
506-@@ -1323,6 +1327,8 @@ SYSCALL_DEFINE2(sethostname, char __user
506+@@ -1325,6 +1329,8 @@ SYSCALL_DEFINE2(sethostname, char __user
507507
508508 if (len < 0 || len > __NEW_UTS_LEN)
509509 return -EINVAL;
@@ -512,7 +512,7 @@
512512 down_write(&uts_sem);
513513 errno = -EFAULT;
514514 if (!copy_from_user(tmp, name, len)) {
515-@@ -1373,6 +1379,8 @@ SYSCALL_DEFINE2(setdomainname, char __us
515+@@ -1375,6 +1381,8 @@ SYSCALL_DEFINE2(setdomainname, char __us
516516 return -EPERM;
517517 if (len < 0 || len > __NEW_UTS_LEN)
518518 return -EINVAL;
@@ -521,8 +521,8 @@
521521
522522 down_write(&uts_sem);
523523 errno = -EFAULT;
524---- linux-4.18.0-305.25.1.el8.orig/kernel/time/timekeeping.c
525-+++ linux-4.18.0-305.25.1.el8/kernel/time/timekeeping.c
524+--- linux-4.18.0-383.el8.orig/kernel/time/timekeeping.c
525++++ linux-4.18.0-383.el8/kernel/time/timekeeping.c
526526 @@ -26,6 +26,7 @@
527527 #include <linux/pvclock_gtod.h>
528528 #include <linux/compiler.h>
@@ -556,8 +556,8 @@
556556
557557 /*
558558 * Validate if a timespec/timeval used to inject a time
559---- linux-4.18.0-305.25.1.el8.orig/net/ipv4/raw.c
560-+++ linux-4.18.0-305.25.1.el8/net/ipv4/raw.c
559+--- linux-4.18.0-383.el8.orig/net/ipv4/raw.c
560++++ linux-4.18.0-383.el8/net/ipv4/raw.c
561561 @@ -781,6 +781,10 @@ static int raw_recvmsg(struct sock *sk,
562562 skb = skb_recv_datagram(sk, flags, noblock, &err);
563563 if (!skb)
@@ -569,9 +569,9 @@
569569
570570 copied = skb->len;
571571 if (len < copied) {
572---- linux-4.18.0-305.25.1.el8.orig/net/ipv4/udp.c
573-+++ linux-4.18.0-305.25.1.el8/net/ipv4/udp.c
574-@@ -1767,6 +1767,8 @@ try_again:
572+--- linux-4.18.0-383.el8.orig/net/ipv4/udp.c
573++++ linux-4.18.0-383.el8/net/ipv4/udp.c
574+@@ -1858,6 +1858,8 @@ try_again:
575575 skb = __skb_recv_udp(sk, flags, noblock, &off, &err);
576576 if (!skb)
577577 return err;
@@ -580,8 +580,8 @@
580580
581581 ulen = udp_skb_len(skb);
582582 copied = len;
583---- linux-4.18.0-305.25.1.el8.orig/net/ipv6/raw.c
584-+++ linux-4.18.0-305.25.1.el8/net/ipv6/raw.c
583+--- linux-4.18.0-383.el8.orig/net/ipv6/raw.c
584++++ linux-4.18.0-383.el8/net/ipv6/raw.c
585585 @@ -485,6 +485,10 @@ static int rawv6_recvmsg(struct sock *sk
586586 skb = skb_recv_datagram(sk, flags, noblock, &err);
587587 if (!skb)
@@ -593,9 +593,9 @@
593593
594594 copied = skb->len;
595595 if (copied > len) {
596---- linux-4.18.0-305.25.1.el8.orig/net/ipv6/udp.c
597-+++ linux-4.18.0-305.25.1.el8/net/ipv6/udp.c
598-@@ -345,6 +345,8 @@ try_again:
596+--- linux-4.18.0-383.el8.orig/net/ipv6/udp.c
597++++ linux-4.18.0-383.el8/net/ipv6/udp.c
598+@@ -346,6 +346,8 @@ try_again:
599599 skb = __skb_recv_udp(sk, flags, noblock, &off, &err);
600600 if (!skb)
601601 return err;
@@ -604,8 +604,8 @@
604604
605605 ulen = udp6_skb_len(skb);
606606 copied = len;
607---- linux-4.18.0-305.25.1.el8.orig/net/socket.c
608-+++ linux-4.18.0-305.25.1.el8/net/socket.c
607+--- linux-4.18.0-383.el8.orig/net/socket.c
608++++ linux-4.18.0-383.el8/net/socket.c
609609 @@ -1715,6 +1715,10 @@ int __sys_accept4_file(struct file *file
610610 if (err < 0)
611611 goto out_fd;
@@ -617,9 +617,9 @@
617617 if (upeer_sockaddr) {
618618 len = newsock->ops->getname(newsock,
619619 (struct sockaddr *)&address, 2);
620---- linux-4.18.0-305.25.1.el8.orig/net/unix/af_unix.c
621-+++ linux-4.18.0-305.25.1.el8/net/unix/af_unix.c
622-@@ -2081,6 +2081,10 @@ static int unix_dgram_recvmsg(struct soc
620+--- linux-4.18.0-383.el8.orig/net/unix/af_unix.c
621++++ linux-4.18.0-383.el8/net/unix/af_unix.c
622+@@ -2165,6 +2165,10 @@ static int unix_dgram_recvmsg(struct soc
623623 EPOLLOUT | EPOLLWRNORM |
624624 EPOLLWRBAND);
625625
@@ -630,7 +630,7 @@
630630 if (msg->msg_name)
631631 unix_copy_addr(msg, skb->sk);
632632
633-@@ -2131,6 +2135,7 @@ static int unix_dgram_recvmsg(struct soc
633+@@ -2215,6 +2219,7 @@ static int unix_dgram_recvmsg(struct soc
634634
635635 out_free:
636636 skb_free_datagram(sk, skb);
@@ -638,9 +638,9 @@
638638 mutex_unlock(&u->iolock);
639639 out:
640640 return err;
641---- linux-4.18.0-305.25.1.el8.orig/security/Kconfig
642-+++ linux-4.18.0-305.25.1.el8/security/Kconfig
643-@@ -315,4 +315,6 @@ config DEFAULT_SECURITY
641+--- linux-4.18.0-383.el8.orig/security/Kconfig
642++++ linux-4.18.0-383.el8/security/Kconfig
643+@@ -326,4 +326,6 @@ config LSM
644644
645645 source "security/Kconfig.hardening"
646646
@@ -647,9 +647,9 @@
647647 +source security/ccsecurity/Kconfig
648648 +
649649 endmenu
650---- linux-4.18.0-305.25.1.el8.orig/security/Makefile
651-+++ linux-4.18.0-305.25.1.el8/security/Makefile
652-@@ -33,3 +33,6 @@ obj-$(CONFIG_INTEGRITY) += integrity/
650+--- linux-4.18.0-383.el8.orig/security/Makefile
651++++ linux-4.18.0-383.el8/security/Makefile
652+@@ -35,3 +35,6 @@ obj-$(CONFIG_INTEGRITY) += integrity/
653653
654654 # Allow the kernel to be locked down
655655 obj-$(CONFIG_LOCK_DOWN_KERNEL) += lock_down.o
@@ -656,26 +656,24 @@
656656 +
657657 +subdir-$(CONFIG_CCSECURITY) += ccsecurity
658658 +obj-$(CONFIG_CCSECURITY) += ccsecurity/
659---- linux-4.18.0-305.25.1.el8.orig/security/security.c
660-+++ linux-4.18.0-305.25.1.el8/security/security.c
661-@@ -1016,12 +1016,19 @@ int security_file_open(struct file *file
659+--- linux-4.18.0-383.el8.orig/security/security.c
660++++ linux-4.18.0-383.el8/security/security.c
661+@@ -1553,7 +1553,9 @@ int security_task_alloc(struct task_stru
662662
663- int security_task_alloc(struct task_struct *task, unsigned long clone_flags)
664- {
665-- return call_int_hook(task_alloc, 0, task, clone_flags);
666-+ int ret = ccs_alloc_task_security(task);
667-+ if (ret)
668-+ return ret;
669-+ ret = call_int_hook(task_alloc, 0, task, clone_flags);
670-+ if (ret)
671-+ ccs_free_task_security(task);
672-+ return ret;
673- }
674-
663+ if (rc)
664+ return rc;
665+- rc = call_int_hook(task_alloc, 0, task, clone_flags);
666++ rc = ccs_alloc_task_security(task);
667++ if (!rc)
668++ rc = call_int_hook(task_alloc, 0, task, clone_flags);
669+ if (unlikely(rc))
670+ security_task_free(task);
671+ return rc;
672+@@ -1562,6 +1564,7 @@ int security_task_alloc(struct task_stru
675673 void security_task_free(struct task_struct *task)
676674 {
677675 call_void_hook(task_free, task);
678676 + ccs_free_task_security(task);
679- }
680677
681- int security_cred_alloc_blank(struct cred *cred, gfp_t gfp)
678+ kfree(task->security);
679+ task->security = NULL;
--- trunk/caitsith-patch/patches/ccs-patch-4.19.diff (revision 364)
+++ trunk/caitsith-patch/patches/ccs-patch-4.19.diff (revision 365)
@@ -1,6 +1,6 @@
1-This is TOMOYO Linux patch for kernel 4.19.237.
1+This is TOMOYO Linux patch for kernel 4.19.241.
22
3-Source code for this patch is https://www.kernel.org/pub/linux/kernel/v4.x/linux-4.19.237.tar.xz
3+Source code for this patch is https://www.kernel.org/pub/linux/kernel/v4.x/linux-4.19.241.tar.xz
44 ---
55 fs/exec.c | 2 -
66 fs/open.c | 2 +
@@ -28,8 +28,8 @@
2828 security/security.c | 9 +++++-
2929 24 files changed, 148 insertions(+), 29 deletions(-)
3030
31---- linux-4.19.237.orig/fs/exec.c
32-+++ linux-4.19.237/fs/exec.c
31+--- linux-4.19.241.orig/fs/exec.c
32++++ linux-4.19.241/fs/exec.c
3333 @@ -1707,7 +1707,7 @@ static int exec_binprm(struct linux_binp
3434 old_vpid = task_pid_nr_ns(current, task_active_pid_ns(current->parent));
3535 rcu_read_unlock();
@@ -39,8 +39,8 @@
3939 if (ret >= 0) {
4040 audit_bprm(bprm);
4141 trace_sched_process_exec(current, old_pid, bprm);
42---- linux-4.19.237.orig/fs/open.c
43-+++ linux-4.19.237/fs/open.c
42+--- linux-4.19.241.orig/fs/open.c
43++++ linux-4.19.241/fs/open.c
4444 @@ -1196,6 +1196,8 @@ SYSCALL_DEFINE1(close, unsigned int, fd)
4545 */
4646 SYSCALL_DEFINE0(vhangup)
@@ -50,8 +50,8 @@
5050 if (capable(CAP_SYS_TTY_CONFIG)) {
5151 tty_vhangup_self();
5252 return 0;
53---- linux-4.19.237.orig/fs/proc/version.c
54-+++ linux-4.19.237/fs/proc/version.c
53+--- linux-4.19.241.orig/fs/proc/version.c
54++++ linux-4.19.241/fs/proc/version.c
5555 @@ -21,3 +21,10 @@ static int __init proc_version_init(void
5656 return 0;
5757 }
@@ -59,12 +59,12 @@
5959 +
6060 +static int __init ccs_show_version(void)
6161 +{
62-+ printk(KERN_INFO "Hook version: 4.19.237 2022/04/04\n");
62++ printk(KERN_INFO "Hook version: 4.19.241 2022/05/02\n");
6363 + return 0;
6464 +}
6565 +fs_initcall(ccs_show_version);
66---- linux-4.19.237.orig/include/linux/sched.h
67-+++ linux-4.19.237/include/linux/sched.h
66+--- linux-4.19.241.orig/include/linux/sched.h
67++++ linux-4.19.241/include/linux/sched.h
6868 @@ -34,6 +34,7 @@ struct audit_context;
6969 struct backing_dev_info;
7070 struct bio_list;
@@ -84,8 +84,8 @@
8484
8585 /*
8686 * New fields for task_struct should be added above here, so that
87---- linux-4.19.237.orig/include/linux/security.h
88-+++ linux-4.19.237/include/linux/security.h
87+--- linux-4.19.241.orig/include/linux/security.h
88++++ linux-4.19.241/include/linux/security.h
8989 @@ -53,6 +53,7 @@ struct msg_msg;
9090 struct xattr;
9191 struct xfrm_sec_ctx;
@@ -306,8 +306,8 @@
306306 }
307307 #endif /* CONFIG_SECURITY_PATH */
308308
309---- linux-4.19.237.orig/include/net/ip.h
310-+++ linux-4.19.237/include/net/ip.h
309+--- linux-4.19.241.orig/include/net/ip.h
310++++ linux-4.19.241/include/net/ip.h
311311 @@ -302,6 +302,8 @@ void inet_get_local_port_range(struct ne
312312 #ifdef CONFIG_SYSCTL
313313 static inline int inet_is_local_reserved_port(struct net *net, int port)
@@ -326,8 +326,8 @@
326326 return 0;
327327 }
328328
329---- linux-4.19.237.orig/init/init_task.c
330-+++ linux-4.19.237/init/init_task.c
329+--- linux-4.19.241.orig/init/init_task.c
330++++ linux-4.19.241/init/init_task.c
331331 @@ -180,6 +180,10 @@ struct task_struct init_task
332332 #ifdef CONFIG_SECURITY
333333 .security = NULL,
@@ -339,8 +339,8 @@
339339 };
340340 EXPORT_SYMBOL(init_task);
341341
342---- linux-4.19.237.orig/kernel/kexec.c
343-+++ linux-4.19.237/kernel/kexec.c
342+--- linux-4.19.241.orig/kernel/kexec.c
343++++ linux-4.19.241/kernel/kexec.c
344344 @@ -18,7 +18,7 @@
345345 #include <linux/syscalls.h>
346346 #include <linux/vmalloc.h>
@@ -359,8 +359,8 @@
359359
360360 /* Permit LSMs and IMA to fail the kexec */
361361 result = security_kernel_load_data(LOADING_KEXEC_IMAGE);
362---- linux-4.19.237.orig/kernel/module.c
363-+++ linux-4.19.237/kernel/module.c
362+--- linux-4.19.241.orig/kernel/module.c
363++++ linux-4.19.241/kernel/module.c
364364 @@ -66,6 +66,7 @@
365365 #include <linux/audit.h>
366366 #include <uapi/linux/module.h>
@@ -387,9 +387,9 @@
387387
388388 return 0;
389389 }
390---- linux-4.19.237.orig/kernel/ptrace.c
391-+++ linux-4.19.237/kernel/ptrace.c
392-@@ -1152,6 +1152,11 @@ SYSCALL_DEFINE4(ptrace, long, request, l
390+--- linux-4.19.241.orig/kernel/ptrace.c
391++++ linux-4.19.241/kernel/ptrace.c
392+@@ -1169,6 +1169,11 @@ SYSCALL_DEFINE4(ptrace, long, request, l
393393 {
394394 struct task_struct *child;
395395 long ret;
@@ -401,7 +401,7 @@
401401
402402 if (request == PTRACE_TRACEME) {
403403 ret = ptrace_traceme();
404-@@ -1300,6 +1305,11 @@ COMPAT_SYSCALL_DEFINE4(ptrace, compat_lo
404+@@ -1317,6 +1322,11 @@ COMPAT_SYSCALL_DEFINE4(ptrace, compat_lo
405405 {
406406 struct task_struct *child;
407407 long ret;
@@ -413,8 +413,8 @@
413413
414414 if (request == PTRACE_TRACEME) {
415415 ret = ptrace_traceme();
416---- linux-4.19.237.orig/kernel/reboot.c
417-+++ linux-4.19.237/kernel/reboot.c
416+--- linux-4.19.241.orig/kernel/reboot.c
417++++ linux-4.19.241/kernel/reboot.c
418418 @@ -16,6 +16,7 @@
419419 #include <linux/syscalls.h>
420420 #include <linux/syscore_ops.h>
@@ -432,8 +432,8 @@
432432
433433 /*
434434 * If pid namespaces are enabled and the current task is in a child
435---- linux-4.19.237.orig/kernel/sched/core.c
436-+++ linux-4.19.237/kernel/sched/core.c
435+--- linux-4.19.241.orig/kernel/sched/core.c
436++++ linux-4.19.241/kernel/sched/core.c
437437 @@ -3992,6 +3992,8 @@ int can_nice(const struct task_struct *p
438438 SYSCALL_DEFINE1(nice, int, increment)
439439 {
@@ -443,8 +443,8 @@
443443
444444 /*
445445 * Setpriority might change our priority at the same moment.
446---- linux-4.19.237.orig/kernel/signal.c
447-+++ linux-4.19.237/kernel/signal.c
446+--- linux-4.19.241.orig/kernel/signal.c
447++++ linux-4.19.241/kernel/signal.c
448448 @@ -3276,6 +3276,8 @@ COMPAT_SYSCALL_DEFINE4(rt_sigtimedwait,
449449 SYSCALL_DEFINE2(kill, pid_t, pid, int, sig)
450450 {
@@ -490,8 +490,8 @@
490490
491491 return do_send_specific(tgid, pid, sig, info);
492492 }
493---- linux-4.19.237.orig/kernel/sys.c
494-+++ linux-4.19.237/kernel/sys.c
493+--- linux-4.19.241.orig/kernel/sys.c
494++++ linux-4.19.241/kernel/sys.c
495495 @@ -201,6 +201,10 @@ SYSCALL_DEFINE3(setpriority, int, which,
496496
497497 if (which > PRIO_USER || which < PRIO_PROCESS)
@@ -521,8 +521,8 @@
521521
522522 errno = -EFAULT;
523523 if (!copy_from_user(tmp, name, len)) {
524---- linux-4.19.237.orig/kernel/time/timekeeping.c
525-+++ linux-4.19.237/kernel/time/timekeeping.c
524+--- linux-4.19.241.orig/kernel/time/timekeeping.c
525++++ linux-4.19.241/kernel/time/timekeeping.c
526526 @@ -26,6 +26,7 @@
527527 #include <linux/stop_machine.h>
528528 #include <linux/pvclock_gtod.h>
@@ -556,8 +556,8 @@
556556
557557 /*
558558 * Validate if a timespec/timeval used to inject a time
559---- linux-4.19.237.orig/net/ipv4/raw.c
560-+++ linux-4.19.237/net/ipv4/raw.c
559+--- linux-4.19.241.orig/net/ipv4/raw.c
560++++ linux-4.19.241/net/ipv4/raw.c
561561 @@ -775,6 +775,10 @@ static int raw_recvmsg(struct sock *sk,
562562 skb = skb_recv_datagram(sk, flags, noblock, &err);
563563 if (!skb)
@@ -569,8 +569,8 @@
569569
570570 copied = skb->len;
571571 if (len < copied) {
572---- linux-4.19.237.orig/net/ipv4/udp.c
573-+++ linux-4.19.237/net/ipv4/udp.c
572+--- linux-4.19.241.orig/net/ipv4/udp.c
573++++ linux-4.19.241/net/ipv4/udp.c
574574 @@ -1686,6 +1686,8 @@ try_again:
575575 skb = __skb_recv_udp(sk, flags, noblock, &peeked, &off, &err);
576576 if (!skb)
@@ -580,8 +580,8 @@
580580
581581 ulen = udp_skb_len(skb);
582582 copied = len;
583---- linux-4.19.237.orig/net/ipv6/raw.c
584-+++ linux-4.19.237/net/ipv6/raw.c
583+--- linux-4.19.241.orig/net/ipv6/raw.c
584++++ linux-4.19.241/net/ipv6/raw.c
585585 @@ -485,6 +485,10 @@ static int rawv6_recvmsg(struct sock *sk
586586 skb = skb_recv_datagram(sk, flags, noblock, &err);
587587 if (!skb)
@@ -593,8 +593,8 @@
593593
594594 copied = skb->len;
595595 if (copied > len) {
596---- linux-4.19.237.orig/net/ipv6/udp.c
597-+++ linux-4.19.237/net/ipv6/udp.c
596+--- linux-4.19.241.orig/net/ipv6/udp.c
597++++ linux-4.19.241/net/ipv6/udp.c
598598 @@ -347,6 +347,8 @@ try_again:
599599 skb = __skb_recv_udp(sk, flags, noblock, &peeked, &off, &err);
600600 if (!skb)
@@ -604,8 +604,8 @@
604604
605605 ulen = udp6_skb_len(skb);
606606 copied = len;
607---- linux-4.19.237.orig/net/socket.c
608-+++ linux-4.19.237/net/socket.c
607+--- linux-4.19.241.orig/net/socket.c
608++++ linux-4.19.241/net/socket.c
609609 @@ -1702,6 +1702,10 @@ int __sys_accept4(int fd, struct sockadd
610610 if (err < 0)
611611 goto out_fd;
@@ -617,8 +617,8 @@
617617 if (upeer_sockaddr) {
618618 len = newsock->ops->getname(newsock,
619619 (struct sockaddr *)&address, 2);
620---- linux-4.19.237.orig/net/unix/af_unix.c
621-+++ linux-4.19.237/net/unix/af_unix.c
620+--- linux-4.19.241.orig/net/unix/af_unix.c
621++++ linux-4.19.241/net/unix/af_unix.c
622622 @@ -2169,6 +2169,10 @@ static int unix_dgram_recvmsg(struct soc
623623 EPOLLOUT | EPOLLWRNORM |
624624 EPOLLWRBAND);
@@ -638,8 +638,8 @@
638638 mutex_unlock(&u->iolock);
639639 out:
640640 return err;
641---- linux-4.19.237.orig/security/Kconfig
642-+++ linux-4.19.237/security/Kconfig
641+--- linux-4.19.241.orig/security/Kconfig
642++++ linux-4.19.241/security/Kconfig
643643 @@ -279,5 +279,7 @@ config DEFAULT_SECURITY
644644 default "apparmor" if DEFAULT_SECURITY_APPARMOR
645645 default "" if DEFAULT_SECURITY_DAC
@@ -648,8 +648,8 @@
648648 +
649649 endmenu
650650
651---- linux-4.19.237.orig/security/Makefile
652-+++ linux-4.19.237/security/Makefile
651+--- linux-4.19.241.orig/security/Makefile
652++++ linux-4.19.241/security/Makefile
653653 @@ -30,3 +30,6 @@ obj-$(CONFIG_CGROUP_DEVICE) += device_c
654654 # Object integrity file lists
655655 subdir-$(CONFIG_INTEGRITY) += integrity
@@ -657,8 +657,8 @@
657657 +
658658 +subdir-$(CONFIG_CCSECURITY) += ccsecurity
659659 +obj-$(CONFIG_CCSECURITY) += ccsecurity/
660---- linux-4.19.237.orig/security/security.c
661-+++ linux-4.19.237/security/security.c
660+--- linux-4.19.241.orig/security/security.c
661++++ linux-4.19.241/security/security.c
662662 @@ -984,12 +984,19 @@ int security_file_open(struct file *file
663663
664664 int security_task_alloc(struct task_struct *task, unsigned long clone_flags)
--- trunk/caitsith-patch/patches/ccs-patch-4.9.diff (revision 364)
+++ trunk/caitsith-patch/patches/ccs-patch-4.9.diff (revision 365)
@@ -1,6 +1,6 @@
1-This is TOMOYO Linux patch for kernel 4.9.309.
1+This is TOMOYO Linux patch for kernel 4.9.312.
22
3-Source code for this patch is https://www.kernel.org/pub/linux/kernel/v4.x/linux-4.9.309.tar.xz
3+Source code for this patch is https://www.kernel.org/pub/linux/kernel/v4.x/linux-4.9.312.tar.xz
44 ---
55 fs/exec.c | 2 -
66 fs/open.c | 2 +
@@ -28,8 +28,8 @@
2828 security/Makefile | 3 ++
2929 24 files changed, 147 insertions(+), 26 deletions(-)
3030
31---- linux-4.9.309.orig/fs/exec.c
32-+++ linux-4.9.309/fs/exec.c
31+--- linux-4.9.312.orig/fs/exec.c
32++++ linux-4.9.312/fs/exec.c
3333 @@ -1662,7 +1662,7 @@ static int exec_binprm(struct linux_binp
3434 old_vpid = task_pid_nr_ns(current, task_active_pid_ns(current->parent));
3535 rcu_read_unlock();
@@ -39,8 +39,8 @@
3939 if (ret >= 0) {
4040 audit_bprm(bprm);
4141 trace_sched_process_exec(current, old_pid, bprm);
42---- linux-4.9.309.orig/fs/open.c
43-+++ linux-4.9.309/fs/open.c
42+--- linux-4.9.312.orig/fs/open.c
43++++ linux-4.9.312/fs/open.c
4444 @@ -1173,6 +1173,8 @@ EXPORT_SYMBOL(sys_close);
4545 */
4646 SYSCALL_DEFINE0(vhangup)
@@ -50,8 +50,8 @@
5050 if (capable(CAP_SYS_TTY_CONFIG)) {
5151 tty_vhangup_self();
5252 return 0;
53---- linux-4.9.309.orig/fs/proc/version.c
54-+++ linux-4.9.309/fs/proc/version.c
53+--- linux-4.9.312.orig/fs/proc/version.c
54++++ linux-4.9.312/fs/proc/version.c
5555 @@ -32,3 +32,10 @@ static int __init proc_version_init(void
5656 return 0;
5757 }
@@ -59,12 +59,12 @@
5959 +
6060 +static int __init ccs_show_version(void)
6161 +{
62-+ printk(KERN_INFO "Hook version: 4.9.309 2022/04/04\n");
62++ printk(KERN_INFO "Hook version: 4.9.312 2022/05/02\n");
6363 + return 0;
6464 +}
6565 +fs_initcall(ccs_show_version);
66---- linux-4.9.309.orig/include/linux/init_task.h
67-+++ linux-4.9.309/include/linux/init_task.h
66+--- linux-4.9.312.orig/include/linux/init_task.h
67++++ linux-4.9.312/include/linux/init_task.h
6868 @@ -193,6 +193,14 @@ extern struct task_group root_task_group
6969 # define INIT_TASK_TI(tsk)
7070 #endif
@@ -88,8 +88,8 @@
8888 }
8989
9090
91---- linux-4.9.309.orig/include/linux/sched.h
92-+++ linux-4.9.309/include/linux/sched.h
91+--- linux-4.9.312.orig/include/linux/sched.h
92++++ linux-4.9.312/include/linux/sched.h
9393 @@ -6,6 +6,8 @@
9494 #include <linux/sched/prio.h>
9595
@@ -110,8 +110,8 @@
110110 /* CPU-specific state of this task */
111111 struct thread_struct thread;
112112 /*
113---- linux-4.9.309.orig/include/linux/security.h
114-+++ linux-4.9.309/include/linux/security.h
113+--- linux-4.9.312.orig/include/linux/security.h
114++++ linux-4.9.312/include/linux/security.h
115115 @@ -55,6 +55,7 @@ struct msg_queue;
116116 struct xattr;
117117 struct xfrm_sec_ctx;
@@ -318,8 +318,8 @@
318318 }
319319 #endif /* CONFIG_SECURITY_PATH */
320320
321---- linux-4.9.309.orig/include/net/ip.h
322-+++ linux-4.9.309/include/net/ip.h
321+--- linux-4.9.312.orig/include/net/ip.h
322++++ linux-4.9.312/include/net/ip.h
323323 @@ -254,6 +254,8 @@ void inet_get_local_port_range(struct ne
324324 #ifdef CONFIG_SYSCTL
325325 static inline int inet_is_local_reserved_port(struct net *net, int port)
@@ -338,8 +338,8 @@
338338 return 0;
339339 }
340340 #endif
341---- linux-4.9.309.orig/kernel/fork.c
342-+++ linux-4.9.309/kernel/fork.c
341+--- linux-4.9.312.orig/kernel/fork.c
342++++ linux-4.9.312/kernel/fork.c
343343 @@ -395,6 +395,7 @@ void __put_task_struct(struct task_struc
344344 delayacct_tsk_free(tsk);
345345 put_signal_struct(tsk->signal);
@@ -366,8 +366,8 @@
366366 bad_fork_cleanup_perf:
367367 perf_event_free_task(p);
368368 bad_fork_cleanup_policy:
369---- linux-4.9.309.orig/kernel/kexec.c
370-+++ linux-4.9.309/kernel/kexec.c
369+--- linux-4.9.312.orig/kernel/kexec.c
370++++ linux-4.9.312/kernel/kexec.c
371371 @@ -17,7 +17,7 @@
372372 #include <linux/syscalls.h>
373373 #include <linux/vmalloc.h>
@@ -386,8 +386,8 @@
386386
387387 /*
388388 * Verify we have a legal set of flags
389---- linux-4.9.309.orig/kernel/module.c
390-+++ linux-4.9.309/kernel/module.c
389+--- linux-4.9.312.orig/kernel/module.c
390++++ linux-4.9.312/kernel/module.c
391391 @@ -63,6 +63,7 @@
392392 #include <linux/dynamic_debug.h>
393393 #include <uapi/linux/module.h>
@@ -414,9 +414,9 @@
414414
415415 return 0;
416416 }
417---- linux-4.9.309.orig/kernel/ptrace.c
418-+++ linux-4.9.309/kernel/ptrace.c
419-@@ -1162,6 +1162,11 @@ SYSCALL_DEFINE4(ptrace, long, request, l
417+--- linux-4.9.312.orig/kernel/ptrace.c
418++++ linux-4.9.312/kernel/ptrace.c
419+@@ -1179,6 +1179,11 @@ SYSCALL_DEFINE4(ptrace, long, request, l
420420 {
421421 struct task_struct *child;
422422 long ret;
@@ -428,7 +428,7 @@
428428
429429 if (request == PTRACE_TRACEME) {
430430 ret = ptrace_traceme();
431-@@ -1311,6 +1316,11 @@ COMPAT_SYSCALL_DEFINE4(ptrace, compat_lo
431+@@ -1328,6 +1333,11 @@ COMPAT_SYSCALL_DEFINE4(ptrace, compat_lo
432432 {
433433 struct task_struct *child;
434434 long ret;
@@ -440,8 +440,8 @@
440440
441441 if (request == PTRACE_TRACEME) {
442442 ret = ptrace_traceme();
443---- linux-4.9.309.orig/kernel/reboot.c
444-+++ linux-4.9.309/kernel/reboot.c
443+--- linux-4.9.312.orig/kernel/reboot.c
444++++ linux-4.9.312/kernel/reboot.c
445445 @@ -16,6 +16,7 @@
446446 #include <linux/syscalls.h>
447447 #include <linux/syscore_ops.h>
@@ -459,8 +459,8 @@
459459
460460 /*
461461 * If pid namespaces are enabled and the current task is in a child
462---- linux-4.9.309.orig/kernel/sched/core.c
463-+++ linux-4.9.309/kernel/sched/core.c
462+--- linux-4.9.312.orig/kernel/sched/core.c
463++++ linux-4.9.312/kernel/sched/core.c
464464 @@ -3817,6 +3817,8 @@ int can_nice(const struct task_struct *p
465465 SYSCALL_DEFINE1(nice, int, increment)
466466 {
@@ -470,8 +470,8 @@
470470
471471 /*
472472 * Setpriority might change our priority at the same moment.
473---- linux-4.9.309.orig/kernel/signal.c
474-+++ linux-4.9.309/kernel/signal.c
473+--- linux-4.9.312.orig/kernel/signal.c
474++++ linux-4.9.312/kernel/signal.c
475475 @@ -2930,6 +2930,8 @@ SYSCALL_DEFINE4(rt_sigtimedwait, const s
476476 SYSCALL_DEFINE2(kill, pid_t, pid, int, sig)
477477 {
@@ -517,8 +517,8 @@
517517
518518 return do_send_specific(tgid, pid, sig, info);
519519 }
520---- linux-4.9.309.orig/kernel/sys.c
521-+++ linux-4.9.309/kernel/sys.c
520+--- linux-4.9.312.orig/kernel/sys.c
521++++ linux-4.9.312/kernel/sys.c
522522 @@ -185,6 +185,10 @@ SYSCALL_DEFINE3(setpriority, int, which,
523523
524524 if (which > PRIO_USER || which < PRIO_PROCESS)
@@ -548,8 +548,8 @@
548548
549549 errno = -EFAULT;
550550 if (!copy_from_user(tmp, name, len)) {
551---- linux-4.9.309.orig/kernel/time/ntp.c
552-+++ linux-4.9.309/kernel/time/ntp.c
551+--- linux-4.9.312.orig/kernel/time/ntp.c
552++++ linux-4.9.312/kernel/time/ntp.c
553553 @@ -17,6 +17,7 @@
554554 #include <linux/module.h>
555555 #include <linux/rtc.h>
@@ -583,8 +583,8 @@
583583
584584 if (txc->modes & ADJ_NANO) {
585585 struct timespec ts;
586---- linux-4.9.309.orig/net/ipv4/raw.c
587-+++ linux-4.9.309/net/ipv4/raw.c
586+--- linux-4.9.312.orig/net/ipv4/raw.c
587++++ linux-4.9.312/net/ipv4/raw.c
588588 @@ -749,6 +749,10 @@ static int raw_recvmsg(struct sock *sk,
589589 skb = skb_recv_datagram(sk, flags, noblock, &err);
590590 if (!skb)
@@ -596,8 +596,8 @@
596596
597597 copied = skb->len;
598598 if (len < copied) {
599---- linux-4.9.309.orig/net/ipv4/udp.c
600-+++ linux-4.9.309/net/ipv4/udp.c
599+--- linux-4.9.312.orig/net/ipv4/udp.c
600++++ linux-4.9.312/net/ipv4/udp.c
601601 @@ -1271,6 +1271,8 @@ try_again:
602602 &peeked, &off, &err);
603603 if (!skb)
@@ -607,8 +607,8 @@
607607
608608 ulen = skb->len;
609609 copied = len;
610---- linux-4.9.309.orig/net/ipv6/raw.c
611-+++ linux-4.9.309/net/ipv6/raw.c
610+--- linux-4.9.312.orig/net/ipv6/raw.c
611++++ linux-4.9.312/net/ipv6/raw.c
612612 @@ -480,6 +480,10 @@ static int rawv6_recvmsg(struct sock *sk
613613 skb = skb_recv_datagram(sk, flags, noblock, &err);
614614 if (!skb)
@@ -620,8 +620,8 @@
620620
621621 copied = skb->len;
622622 if (copied > len) {
623---- linux-4.9.309.orig/net/ipv6/udp.c
624-+++ linux-4.9.309/net/ipv6/udp.c
623+--- linux-4.9.312.orig/net/ipv6/udp.c
624++++ linux-4.9.312/net/ipv6/udp.c
625625 @@ -348,6 +348,8 @@ try_again:
626626 &peeked, &off, &err);
627627 if (!skb)
@@ -631,8 +631,8 @@
631631
632632 ulen = skb->len;
633633 copied = len;
634---- linux-4.9.309.orig/net/socket.c
635-+++ linux-4.9.309/net/socket.c
634+--- linux-4.9.312.orig/net/socket.c
635++++ linux-4.9.312/net/socket.c
636636 @@ -1482,6 +1482,10 @@ SYSCALL_DEFINE4(accept4, int, fd, struct
637637 if (err < 0)
638638 goto out_fd;
@@ -644,8 +644,8 @@
644644 if (upeer_sockaddr) {
645645 if (newsock->ops->getname(newsock, (struct sockaddr *)&address,
646646 &len, 2) < 0) {
647---- linux-4.9.309.orig/net/unix/af_unix.c
648-+++ linux-4.9.309/net/unix/af_unix.c
647+--- linux-4.9.312.orig/net/unix/af_unix.c
648++++ linux-4.9.312/net/unix/af_unix.c
649649 @@ -2167,6 +2167,10 @@ static int unix_dgram_recvmsg(struct soc
650650 POLLOUT | POLLWRNORM |
651651 POLLWRBAND);
@@ -665,8 +665,8 @@
665665 mutex_unlock(&u->iolock);
666666 out:
667667 return err;
668---- linux-4.9.309.orig/security/Kconfig
669-+++ linux-4.9.309/security/Kconfig
668+--- linux-4.9.312.orig/security/Kconfig
669++++ linux-4.9.312/security/Kconfig
670670 @@ -214,5 +214,7 @@ config DEFAULT_SECURITY
671671 default "apparmor" if DEFAULT_SECURITY_APPARMOR
672672 default "" if DEFAULT_SECURITY_DAC
@@ -675,8 +675,8 @@
675675 +
676676 endmenu
677677
678---- linux-4.9.309.orig/security/Makefile
679-+++ linux-4.9.309/security/Makefile
678+--- linux-4.9.312.orig/security/Makefile
679++++ linux-4.9.312/security/Makefile
680680 @@ -29,3 +29,6 @@ obj-$(CONFIG_CGROUP_DEVICE) += device_c
681681 # Object integrity file lists
682682 subdir-$(CONFIG_INTEGRITY) += integrity
--- trunk/caitsith-patch/patches/ccs-patch-5.10.diff (revision 364)
+++ trunk/caitsith-patch/patches/ccs-patch-5.10.diff (revision 365)
@@ -1,6 +1,6 @@
1-This is TOMOYO Linux patch for kernel 5.10.110.
1+This is TOMOYO Linux patch for kernel 5.10.114.
22
3-Source code for this patch is https://www.kernel.org/pub/linux/kernel/v5.x/linux-5.10.110.tar.xz
3+Source code for this patch is https://www.kernel.org/pub/linux/kernel/v5.x/linux-5.10.114.tar.xz
44 ---
55 fs/exec.c | 2 -
66 fs/open.c | 2 +
@@ -28,8 +28,8 @@
2828 security/security.c | 5 ++-
2929 24 files changed, 160 insertions(+), 30 deletions(-)
3030
31---- linux-5.10.110.orig/fs/exec.c
32-+++ linux-5.10.110/fs/exec.c
31+--- linux-5.10.114.orig/fs/exec.c
32++++ linux-5.10.114/fs/exec.c
3333 @@ -1823,7 +1823,7 @@ static int bprm_execve(struct linux_binp
3434 if (retval)
3535 goto out;
@@ -39,8 +39,8 @@
3939 if (retval < 0)
4040 goto out;
4141
42---- linux-5.10.110.orig/fs/open.c
43-+++ linux-5.10.110/fs/open.c
42+--- linux-5.10.114.orig/fs/open.c
43++++ linux-5.10.114/fs/open.c
4444 @@ -1339,6 +1339,8 @@ SYSCALL_DEFINE3(close_range, unsigned in
4545 */
4646 SYSCALL_DEFINE0(vhangup)
@@ -50,8 +50,8 @@
5050 if (capable(CAP_SYS_TTY_CONFIG)) {
5151 tty_vhangup_self();
5252 return 0;
53---- linux-5.10.110.orig/fs/proc/version.c
54-+++ linux-5.10.110/fs/proc/version.c
53+--- linux-5.10.114.orig/fs/proc/version.c
54++++ linux-5.10.114/fs/proc/version.c
5555 @@ -21,3 +21,10 @@ static int __init proc_version_init(void
5656 return 0;
5757 }
@@ -59,12 +59,12 @@
5959 +
6060 +static int __init ccs_show_version(void)
6161 +{
62-+ printk(KERN_INFO "Hook version: 5.10.110 2022/04/11\n");
62++ printk(KERN_INFO "Hook version: 5.10.114 2022/05/11\n");
6363 + return 0;
6464 +}
6565 +fs_initcall(ccs_show_version);
66---- linux-5.10.110.orig/include/linux/sched.h
67-+++ linux-5.10.110/include/linux/sched.h
66+--- linux-5.10.114.orig/include/linux/sched.h
67++++ linux-5.10.114/include/linux/sched.h
6868 @@ -41,6 +41,7 @@ struct backing_dev_info;
6969 struct bio_list;
7070 struct blk_plug;
@@ -73,7 +73,7 @@
7373 struct cfs_rq;
7474 struct fs_struct;
7575 struct futex_pi_state;
76-@@ -1340,6 +1341,10 @@ struct task_struct {
76+@@ -1341,6 +1342,10 @@ struct task_struct {
7777 /* Used by LSM modules for access restriction: */
7878 void *security;
7979 #endif
@@ -84,8 +84,8 @@
8484
8585 #ifdef CONFIG_GCC_PLUGIN_STACKLEAK
8686 unsigned long lowest_stack;
87---- linux-5.10.110.orig/include/linux/security.h
88-+++ linux-5.10.110/include/linux/security.h
87+--- linux-5.10.114.orig/include/linux/security.h
88++++ linux-5.10.114/include/linux/security.h
8989 @@ -59,6 +59,7 @@ struct fs_parameter;
9090 enum fs_value_type;
9191 struct watch;
@@ -315,8 +315,8 @@
315315 }
316316 #endif /* CONFIG_SECURITY_PATH */
317317
318---- linux-5.10.110.orig/include/net/ip.h
319-+++ linux-5.10.110/include/net/ip.h
318+--- linux-5.10.114.orig/include/net/ip.h
319++++ linux-5.10.114/include/net/ip.h
320320 @@ -339,6 +339,8 @@ void inet_get_local_port_range(struct ne
321321 #ifdef CONFIG_SYSCTL
322322 static inline bool inet_is_local_reserved_port(struct net *net, unsigned short port)
@@ -335,8 +335,8 @@
335335 return false;
336336 }
337337
338---- linux-5.10.110.orig/init/init_task.c
339-+++ linux-5.10.110/init/init_task.c
338+--- linux-5.10.114.orig/init/init_task.c
339++++ linux-5.10.114/init/init_task.c
340340 @@ -213,6 +213,10 @@ struct task_struct init_task
341341 #ifdef CONFIG_SECCOMP_FILTER
342342 .seccomp = { .filter_count = ATOMIC_INIT(0) },
@@ -348,8 +348,8 @@
348348 };
349349 EXPORT_SYMBOL(init_task);
350350
351---- linux-5.10.110.orig/kernel/kexec.c
352-+++ linux-5.10.110/kernel/kexec.c
351+--- linux-5.10.114.orig/kernel/kexec.c
352++++ linux-5.10.114/kernel/kexec.c
353353 @@ -16,7 +16,7 @@
354354 #include <linux/syscalls.h>
355355 #include <linux/vmalloc.h>
@@ -368,8 +368,8 @@
368368
369369 /* Permit LSMs and IMA to fail the kexec */
370370 result = security_kernel_load_data(LOADING_KEXEC_IMAGE, false);
371---- linux-5.10.110.orig/kernel/module.c
372-+++ linux-5.10.110/kernel/module.c
371+--- linux-5.10.114.orig/kernel/module.c
372++++ linux-5.10.114/kernel/module.c
373373 @@ -59,6 +59,7 @@
374374 #include <linux/audit.h>
375375 #include <uapi/linux/module.h>
@@ -396,8 +396,8 @@
396396
397397 return 0;
398398 }
399---- linux-5.10.110.orig/kernel/ptrace.c
400-+++ linux-5.10.110/kernel/ptrace.c
399+--- linux-5.10.114.orig/kernel/ptrace.c
400++++ linux-5.10.114/kernel/ptrace.c
401401 @@ -1271,6 +1271,11 @@ SYSCALL_DEFINE4(ptrace, long, request, l
402402 {
403403 struct task_struct *child;
@@ -422,8 +422,8 @@
422422
423423 if (request == PTRACE_TRACEME) {
424424 ret = ptrace_traceme();
425---- linux-5.10.110.orig/kernel/reboot.c
426-+++ linux-5.10.110/kernel/reboot.c
425+--- linux-5.10.114.orig/kernel/reboot.c
426++++ linux-5.10.114/kernel/reboot.c
427427 @@ -17,6 +17,7 @@
428428 #include <linux/syscalls.h>
429429 #include <linux/syscore_ops.h>
@@ -441,8 +441,8 @@
441441
442442 /*
443443 * If pid namespaces are enabled and the current task is in a child
444---- linux-5.10.110.orig/kernel/sched/core.c
445-+++ linux-5.10.110/kernel/sched/core.c
444+--- linux-5.10.114.orig/kernel/sched/core.c
445++++ linux-5.10.114/kernel/sched/core.c
446446 @@ -5057,6 +5057,8 @@ int can_nice(const struct task_struct *p
447447 SYSCALL_DEFINE1(nice, int, increment)
448448 {
@@ -452,8 +452,8 @@
452452
453453 /*
454454 * Setpriority might change our priority at the same moment.
455---- linux-5.10.110.orig/kernel/signal.c
456-+++ linux-5.10.110/kernel/signal.c
455+--- linux-5.10.114.orig/kernel/signal.c
456++++ linux-5.10.114/kernel/signal.c
457457 @@ -3648,6 +3648,8 @@ static inline void prepare_kill_siginfo(
458458 SYSCALL_DEFINE2(kill, pid_t, pid, int, sig)
459459 {
@@ -521,8 +521,8 @@
521521
522522 return do_send_specific(tgid, pid, sig, info);
523523 }
524---- linux-5.10.110.orig/kernel/sys.c
525-+++ linux-5.10.110/kernel/sys.c
524+--- linux-5.10.114.orig/kernel/sys.c
525++++ linux-5.10.114/kernel/sys.c
526526 @@ -205,6 +205,10 @@ SYSCALL_DEFINE3(setpriority, int, which,
527527
528528 if (which > PRIO_USER || which < PRIO_PROCESS)
@@ -552,8 +552,8 @@
552552
553553 errno = -EFAULT;
554554 if (!copy_from_user(tmp, name, len)) {
555---- linux-5.10.110.orig/kernel/time/timekeeping.c
556-+++ linux-5.10.110/kernel/time/timekeeping.c
555+--- linux-5.10.114.orig/kernel/time/timekeeping.c
556++++ linux-5.10.114/kernel/time/timekeeping.c
557557 @@ -22,6 +22,7 @@
558558 #include <linux/pvclock_gtod.h>
559559 #include <linux/compiler.h>
@@ -587,8 +587,8 @@
587587
588588 /*
589589 * Validate if a timespec/timeval used to inject a time
590---- linux-5.10.110.orig/net/ipv4/raw.c
591-+++ linux-5.10.110/net/ipv4/raw.c
590+--- linux-5.10.114.orig/net/ipv4/raw.c
591++++ linux-5.10.114/net/ipv4/raw.c
592592 @@ -771,6 +771,10 @@ static int raw_recvmsg(struct sock *sk,
593593 skb = skb_recv_datagram(sk, flags, noblock, &err);
594594 if (!skb)
@@ -600,8 +600,8 @@
600600
601601 copied = skb->len;
602602 if (len < copied) {
603---- linux-5.10.110.orig/net/ipv4/udp.c
604-+++ linux-5.10.110/net/ipv4/udp.c
603+--- linux-5.10.114.orig/net/ipv4/udp.c
604++++ linux-5.10.114/net/ipv4/udp.c
605605 @@ -1808,6 +1808,8 @@ try_again:
606606 skb = __skb_recv_udp(sk, flags, noblock, &off, &err);
607607 if (!skb)
@@ -611,8 +611,8 @@
611611
612612 ulen = udp_skb_len(skb);
613613 copied = len;
614---- linux-5.10.110.orig/net/ipv6/raw.c
615-+++ linux-5.10.110/net/ipv6/raw.c
614+--- linux-5.10.114.orig/net/ipv6/raw.c
615++++ linux-5.10.114/net/ipv6/raw.c
616616 @@ -480,6 +480,10 @@ static int rawv6_recvmsg(struct sock *sk
617617 skb = skb_recv_datagram(sk, flags, noblock, &err);
618618 if (!skb)
@@ -624,8 +624,8 @@
624624
625625 copied = skb->len;
626626 if (copied > len) {
627---- linux-5.10.110.orig/net/ipv6/udp.c
628-+++ linux-5.10.110/net/ipv6/udp.c
627+--- linux-5.10.114.orig/net/ipv6/udp.c
628++++ linux-5.10.114/net/ipv6/udp.c
629629 @@ -344,6 +344,8 @@ try_again:
630630 skb = __skb_recv_udp(sk, flags, noblock, &off, &err);
631631 if (!skb)
@@ -635,8 +635,8 @@
635635
636636 ulen = udp6_skb_len(skb);
637637 copied = len;
638---- linux-5.10.110.orig/net/socket.c
639-+++ linux-5.10.110/net/socket.c
638+--- linux-5.10.114.orig/net/socket.c
639++++ linux-5.10.114/net/socket.c
640640 @@ -1744,6 +1744,10 @@ int __sys_accept4_file(struct file *file
641641 if (err < 0)
642642 goto out_fd;
@@ -648,8 +648,8 @@
648648 if (upeer_sockaddr) {
649649 len = newsock->ops->getname(newsock,
650650 (struct sockaddr *)&address, 2);
651---- linux-5.10.110.orig/net/unix/af_unix.c
652-+++ linux-5.10.110/net/unix/af_unix.c
651+--- linux-5.10.114.orig/net/unix/af_unix.c
652++++ linux-5.10.114/net/unix/af_unix.c
653653 @@ -2197,6 +2197,10 @@ static int unix_dgram_recvmsg(struct soc
654654 EPOLLOUT | EPOLLWRNORM |
655655 EPOLLWRBAND);
@@ -669,8 +669,8 @@
669669 mutex_unlock(&u->iolock);
670670 out:
671671 return err;
672---- linux-5.10.110.orig/security/Kconfig
673-+++ linux-5.10.110/security/Kconfig
672+--- linux-5.10.114.orig/security/Kconfig
673++++ linux-5.10.114/security/Kconfig
674674 @@ -294,5 +294,7 @@ config LSM
675675
676676 source "security/Kconfig.hardening"
@@ -679,8 +679,8 @@
679679 +
680680 endmenu
681681
682---- linux-5.10.110.orig/security/Makefile
683-+++ linux-5.10.110/security/Makefile
682+--- linux-5.10.114.orig/security/Makefile
683++++ linux-5.10.114/security/Makefile
684684 @@ -36,3 +36,6 @@ obj-$(CONFIG_BPF_LSM) += bpf/
685685 # Object integrity file lists
686686 subdir-$(CONFIG_INTEGRITY) += integrity
@@ -688,8 +688,8 @@
688688 +
689689 +subdir-$(CONFIG_CCSECURITY) += ccsecurity
690690 +obj-$(CONFIG_CCSECURITY) += ccsecurity/
691---- linux-5.10.110.orig/security/security.c
692-+++ linux-5.10.110/security/security.c
691+--- linux-5.10.114.orig/security/security.c
692++++ linux-5.10.114/security/security.c
693693 @@ -1599,7 +1599,9 @@ int security_task_alloc(struct task_stru
694694
695695 if (rc)
--- trunk/caitsith-patch/patches/ccs-patch-5.15.diff (revision 364)
+++ trunk/caitsith-patch/patches/ccs-patch-5.15.diff (revision 365)
@@ -1,6 +1,6 @@
1-This is TOMOYO Linux patch for kernel 5.15.33.
1+This is TOMOYO Linux patch for kernel 5.15.38.
22
3-Source code for this patch is https://www.kernel.org/pub/linux/kernel/v5.x/linux-5.15.33.tar.xz
3+Source code for this patch is https://www.kernel.org/pub/linux/kernel/v5.x/linux-5.15.38.tar.xz
44 ---
55 fs/exec.c | 2 -
66 fs/open.c | 2 +
@@ -28,8 +28,8 @@
2828 security/security.c | 5 ++-
2929 24 files changed, 160 insertions(+), 30 deletions(-)
3030
31---- linux-5.15.33.orig/fs/exec.c
32-+++ linux-5.15.33/fs/exec.c
31+--- linux-5.15.38.orig/fs/exec.c
32++++ linux-5.15.38/fs/exec.c
3333 @@ -1838,7 +1838,7 @@ static int bprm_execve(struct linux_binp
3434 if (retval)
3535 goto out;
@@ -39,8 +39,8 @@
3939 if (retval < 0)
4040 goto out;
4141
42---- linux-5.15.33.orig/fs/open.c
43-+++ linux-5.15.33/fs/open.c
42+--- linux-5.15.38.orig/fs/open.c
43++++ linux-5.15.38/fs/open.c
4444 @@ -1371,6 +1371,8 @@ SYSCALL_DEFINE3(close_range, unsigned in
4545 */
4646 SYSCALL_DEFINE0(vhangup)
@@ -50,8 +50,8 @@
5050 if (capable(CAP_SYS_TTY_CONFIG)) {
5151 tty_vhangup_self();
5252 return 0;
53---- linux-5.15.33.orig/fs/proc/version.c
54-+++ linux-5.15.33/fs/proc/version.c
53+--- linux-5.15.38.orig/fs/proc/version.c
54++++ linux-5.15.38/fs/proc/version.c
5555 @@ -21,3 +21,10 @@ static int __init proc_version_init(void
5656 return 0;
5757 }
@@ -59,12 +59,12 @@
5959 +
6060 +static int __init ccs_show_version(void)
6161 +{
62-+ printk(KERN_INFO "Hook version: 5.15.33 2022/04/11\n");
62++ printk(KERN_INFO "Hook version: 5.15.38 2022/05/11\n");
6363 + return 0;
6464 +}
6565 +fs_initcall(ccs_show_version);
66---- linux-5.15.33.orig/include/linux/sched.h
67-+++ linux-5.15.33/include/linux/sched.h
66+--- linux-5.15.38.orig/include/linux/sched.h
67++++ linux-5.15.38/include/linux/sched.h
6868 @@ -44,6 +44,7 @@ struct blk_plug;
6969 struct bpf_local_storage;
7070 struct bpf_run_ctx;
@@ -84,8 +84,8 @@
8484
8585 #ifdef CONFIG_TRACING
8686 /* State flags for use by tracers: */
87---- linux-5.15.33.orig/include/linux/security.h
88-+++ linux-5.15.33/include/linux/security.h
87+--- linux-5.15.38.orig/include/linux/security.h
88++++ linux-5.15.38/include/linux/security.h
8989 @@ -59,6 +59,7 @@ struct fs_parameter;
9090 enum fs_value_type;
9191 struct watch;
@@ -315,8 +315,8 @@
315315 }
316316 #endif /* CONFIG_SECURITY_PATH */
317317
318---- linux-5.15.33.orig/include/net/ip.h
319-+++ linux-5.15.33/include/net/ip.h
318+--- linux-5.15.38.orig/include/net/ip.h
319++++ linux-5.15.38/include/net/ip.h
320320 @@ -339,6 +339,8 @@ void inet_get_local_port_range(struct ne
321321 #ifdef CONFIG_SYSCTL
322322 static inline bool inet_is_local_reserved_port(struct net *net, unsigned short port)
@@ -335,8 +335,8 @@
335335 return false;
336336 }
337337
338---- linux-5.15.33.orig/init/init_task.c
339-+++ linux-5.15.33/init/init_task.c
338+--- linux-5.15.38.orig/init/init_task.c
339++++ linux-5.15.38/init/init_task.c
340340 @@ -214,6 +214,10 @@ struct task_struct init_task
341341 #ifdef CONFIG_SECCOMP_FILTER
342342 .seccomp = { .filter_count = ATOMIC_INIT(0) },
@@ -348,8 +348,8 @@
348348 };
349349 EXPORT_SYMBOL(init_task);
350350
351---- linux-5.15.33.orig/kernel/kexec.c
352-+++ linux-5.15.33/kernel/kexec.c
351+--- linux-5.15.38.orig/kernel/kexec.c
352++++ linux-5.15.38/kernel/kexec.c
353353 @@ -16,7 +16,7 @@
354354 #include <linux/syscalls.h>
355355 #include <linux/vmalloc.h>
@@ -368,8 +368,8 @@
368368
369369 /* Permit LSMs and IMA to fail the kexec */
370370 result = security_kernel_load_data(LOADING_KEXEC_IMAGE, false);
371---- linux-5.15.33.orig/kernel/module.c
372-+++ linux-5.15.33/kernel/module.c
371+--- linux-5.15.38.orig/kernel/module.c
372++++ linux-5.15.38/kernel/module.c
373373 @@ -59,6 +59,7 @@
374374 #include <linux/audit.h>
375375 #include <uapi/linux/module.h>
@@ -396,8 +396,8 @@
396396
397397 return 0;
398398 }
399---- linux-5.15.33.orig/kernel/ptrace.c
400-+++ linux-5.15.33/kernel/ptrace.c
399+--- linux-5.15.38.orig/kernel/ptrace.c
400++++ linux-5.15.38/kernel/ptrace.c
401401 @@ -1296,6 +1296,11 @@ SYSCALL_DEFINE4(ptrace, long, request, l
402402 {
403403 struct task_struct *child;
@@ -422,8 +422,8 @@
422422
423423 if (request == PTRACE_TRACEME) {
424424 ret = ptrace_traceme();
425---- linux-5.15.33.orig/kernel/reboot.c
426-+++ linux-5.15.33/kernel/reboot.c
425+--- linux-5.15.38.orig/kernel/reboot.c
426++++ linux-5.15.38/kernel/reboot.c
427427 @@ -18,6 +18,7 @@
428428 #include <linux/syscalls.h>
429429 #include <linux/syscore_ops.h>
@@ -441,8 +441,8 @@
441441
442442 /*
443443 * If pid namespaces are enabled and the current task is in a child
444---- linux-5.15.33.orig/kernel/sched/core.c
445-+++ linux-5.15.33/kernel/sched/core.c
444+--- linux-5.15.38.orig/kernel/sched/core.c
445++++ linux-5.15.38/kernel/sched/core.c
446446 @@ -6958,6 +6958,8 @@ int can_nice(const struct task_struct *p
447447 SYSCALL_DEFINE1(nice, int, increment)
448448 {
@@ -452,8 +452,8 @@
452452
453453 /*
454454 * Setpriority might change our priority at the same moment.
455---- linux-5.15.33.orig/kernel/signal.c
456-+++ linux-5.15.33/kernel/signal.c
455+--- linux-5.15.38.orig/kernel/signal.c
456++++ linux-5.15.38/kernel/signal.c
457457 @@ -3787,6 +3787,8 @@ static inline void prepare_kill_siginfo(
458458 SYSCALL_DEFINE2(kill, pid_t, pid, int, sig)
459459 {
@@ -521,8 +521,8 @@
521521
522522 return do_send_specific(tgid, pid, sig, info);
523523 }
524---- linux-5.15.33.orig/kernel/sys.c
525-+++ linux-5.15.33/kernel/sys.c
524+--- linux-5.15.38.orig/kernel/sys.c
525++++ linux-5.15.38/kernel/sys.c
526526 @@ -211,6 +211,10 @@ SYSCALL_DEFINE3(setpriority, int, which,
527527
528528 if (which > PRIO_USER || which < PRIO_PROCESS)
@@ -552,8 +552,8 @@
552552
553553 errno = -EFAULT;
554554 if (!copy_from_user(tmp, name, len)) {
555---- linux-5.15.33.orig/kernel/time/timekeeping.c
556-+++ linux-5.15.33/kernel/time/timekeeping.c
555+--- linux-5.15.38.orig/kernel/time/timekeeping.c
556++++ linux-5.15.38/kernel/time/timekeeping.c
557557 @@ -22,6 +22,7 @@
558558 #include <linux/pvclock_gtod.h>
559559 #include <linux/compiler.h>
@@ -587,8 +587,8 @@
587587
588588 /*
589589 * Validate if a timespec/timeval used to inject a time
590---- linux-5.15.33.orig/net/ipv4/raw.c
591-+++ linux-5.15.33/net/ipv4/raw.c
590+--- linux-5.15.38.orig/net/ipv4/raw.c
591++++ linux-5.15.38/net/ipv4/raw.c
592592 @@ -771,6 +771,10 @@ static int raw_recvmsg(struct sock *sk,
593593 skb = skb_recv_datagram(sk, flags, noblock, &err);
594594 if (!skb)
@@ -600,8 +600,8 @@
600600
601601 copied = skb->len;
602602 if (len < copied) {
603---- linux-5.15.33.orig/net/ipv4/udp.c
604-+++ linux-5.15.33/net/ipv4/udp.c
603+--- linux-5.15.38.orig/net/ipv4/udp.c
604++++ linux-5.15.38/net/ipv4/udp.c
605605 @@ -1862,6 +1862,8 @@ try_again:
606606 skb = __skb_recv_udp(sk, flags, noblock, &off, &err);
607607 if (!skb)
@@ -611,8 +611,8 @@
611611
612612 ulen = udp_skb_len(skb);
613613 copied = len;
614---- linux-5.15.33.orig/net/ipv6/raw.c
615-+++ linux-5.15.33/net/ipv6/raw.c
614+--- linux-5.15.38.orig/net/ipv6/raw.c
615++++ linux-5.15.38/net/ipv6/raw.c
616616 @@ -480,6 +480,10 @@ static int rawv6_recvmsg(struct sock *sk
617617 skb = skb_recv_datagram(sk, flags, noblock, &err);
618618 if (!skb)
@@ -624,8 +624,8 @@
624624
625625 copied = skb->len;
626626 if (copied > len) {
627---- linux-5.15.33.orig/net/ipv6/udp.c
628-+++ linux-5.15.33/net/ipv6/udp.c
627+--- linux-5.15.38.orig/net/ipv6/udp.c
628++++ linux-5.15.38/net/ipv6/udp.c
629629 @@ -344,6 +344,8 @@ try_again:
630630 skb = __skb_recv_udp(sk, flags, noblock, &off, &err);
631631 if (!skb)
@@ -635,8 +635,8 @@
635635
636636 ulen = udp6_skb_len(skb);
637637 copied = len;
638---- linux-5.15.33.orig/net/socket.c
639-+++ linux-5.15.33/net/socket.c
638+--- linux-5.15.38.orig/net/socket.c
639++++ linux-5.15.38/net/socket.c
640640 @@ -1778,6 +1778,10 @@ struct file *do_accept(struct file *file
641641 if (err < 0)
642642 goto out_fd;
@@ -648,8 +648,8 @@
648648 if (upeer_sockaddr) {
649649 len = newsock->ops->getname(newsock,
650650 (struct sockaddr *)&address, 2);
651---- linux-5.15.33.orig/net/unix/af_unix.c
652-+++ linux-5.15.33/net/unix/af_unix.c
651+--- linux-5.15.38.orig/net/unix/af_unix.c
652++++ linux-5.15.38/net/unix/af_unix.c
653653 @@ -2331,6 +2331,10 @@ int __unix_dgram_recvmsg(struct sock *sk
654654 EPOLLOUT | EPOLLWRNORM |
655655 EPOLLWRBAND);
@@ -669,8 +669,8 @@
669669 mutex_unlock(&u->iolock);
670670 out:
671671 return err;
672---- linux-5.15.33.orig/security/Kconfig
673-+++ linux-5.15.33/security/Kconfig
672+--- linux-5.15.38.orig/security/Kconfig
673++++ linux-5.15.38/security/Kconfig
674674 @@ -295,5 +295,7 @@ config LSM
675675
676676 source "security/Kconfig.hardening"
@@ -679,8 +679,8 @@
679679 +
680680 endmenu
681681
682---- linux-5.15.33.orig/security/Makefile
683-+++ linux-5.15.33/security/Makefile
682+--- linux-5.15.38.orig/security/Makefile
683++++ linux-5.15.38/security/Makefile
684684 @@ -27,3 +27,6 @@ obj-$(CONFIG_SECURITY_LANDLOCK) += land
685685
686686 # Object integrity file lists
@@ -688,8 +688,8 @@
688688 +
689689 +subdir-$(CONFIG_CCSECURITY) += ccsecurity
690690 +obj-$(CONFIG_CCSECURITY) += ccsecurity/
691---- linux-5.15.33.orig/security/security.c
692-+++ linux-5.15.33/security/security.c
691+--- linux-5.15.38.orig/security/security.c
692++++ linux-5.15.38/security/security.c
693693 @@ -1657,7 +1657,9 @@ int security_task_alloc(struct task_stru
694694
695695 if (rc)
--- trunk/caitsith-patch/patches/ccs-patch-5.16.diff (revision 364)
+++ trunk/caitsith-patch/patches/ccs-patch-5.16.diff (revision 365)
@@ -1,6 +1,6 @@
1-This is TOMOYO Linux patch for kernel 5.16.19.
1+This is TOMOYO Linux patch for kernel 5.16.20.
22
3-Source code for this patch is https://www.kernel.org/pub/linux/kernel/v5.x/linux-5.16.19.tar.xz
3+Source code for this patch is https://www.kernel.org/pub/linux/kernel/v5.x/linux-5.16.20.tar.xz
44 ---
55 fs/exec.c | 2 -
66 fs/open.c | 2 +
@@ -28,8 +28,8 @@
2828 security/security.c | 5 ++-
2929 24 files changed, 160 insertions(+), 30 deletions(-)
3030
31---- linux-5.16.19.orig/fs/exec.c
32-+++ linux-5.16.19/fs/exec.c
31+--- linux-5.16.20.orig/fs/exec.c
32++++ linux-5.16.20/fs/exec.c
3333 @@ -1836,7 +1836,7 @@ static int bprm_execve(struct linux_binp
3434 if (retval)
3535 goto out;
@@ -39,8 +39,8 @@
3939 if (retval < 0)
4040 goto out;
4141
42---- linux-5.16.19.orig/fs/open.c
43-+++ linux-5.16.19/fs/open.c
42+--- linux-5.16.20.orig/fs/open.c
43++++ linux-5.16.20/fs/open.c
4444 @@ -1373,6 +1373,8 @@ SYSCALL_DEFINE3(close_range, unsigned in
4545 */
4646 SYSCALL_DEFINE0(vhangup)
@@ -50,8 +50,8 @@
5050 if (capable(CAP_SYS_TTY_CONFIG)) {
5151 tty_vhangup_self();
5252 return 0;
53---- linux-5.16.19.orig/fs/proc/version.c
54-+++ linux-5.16.19/fs/proc/version.c
53+--- linux-5.16.20.orig/fs/proc/version.c
54++++ linux-5.16.20/fs/proc/version.c
5555 @@ -21,3 +21,10 @@ static int __init proc_version_init(void
5656 return 0;
5757 }
@@ -59,12 +59,12 @@
5959 +
6060 +static int __init ccs_show_version(void)
6161 +{
62-+ printk(KERN_INFO "Hook version: 5.16.19 2022/04/11\n");
62++ printk(KERN_INFO "Hook version: 5.16.20 2022/05/02\n");
6363 + return 0;
6464 +}
6565 +fs_initcall(ccs_show_version);
66---- linux-5.16.19.orig/include/linux/sched.h
67-+++ linux-5.16.19/include/linux/sched.h
66+--- linux-5.16.20.orig/include/linux/sched.h
67++++ linux-5.16.20/include/linux/sched.h
6868 @@ -44,6 +44,7 @@ struct blk_plug;
6969 struct bpf_local_storage;
7070 struct bpf_run_ctx;
@@ -84,8 +84,8 @@
8484
8585 #ifdef CONFIG_TRACING
8686 /* State flags for use by tracers: */
87---- linux-5.16.19.orig/include/linux/security.h
88-+++ linux-5.16.19/include/linux/security.h
87+--- linux-5.16.20.orig/include/linux/security.h
88++++ linux-5.16.20/include/linux/security.h
8989 @@ -59,6 +59,7 @@ struct fs_parameter;
9090 enum fs_value_type;
9191 struct watch;
@@ -315,8 +315,8 @@
315315 }
316316 #endif /* CONFIG_SECURITY_PATH */
317317
318---- linux-5.16.19.orig/include/net/ip.h
319-+++ linux-5.16.19/include/net/ip.h
318+--- linux-5.16.20.orig/include/net/ip.h
319++++ linux-5.16.20/include/net/ip.h
320320 @@ -344,6 +344,8 @@ void inet_get_local_port_range(struct ne
321321 #ifdef CONFIG_SYSCTL
322322 static inline bool inet_is_local_reserved_port(struct net *net, unsigned short port)
@@ -335,8 +335,8 @@
335335 return false;
336336 }
337337
338---- linux-5.16.19.orig/init/init_task.c
339-+++ linux-5.16.19/init/init_task.c
338+--- linux-5.16.20.orig/init/init_task.c
339++++ linux-5.16.20/init/init_task.c
340340 @@ -214,6 +214,10 @@ struct task_struct init_task
341341 #ifdef CONFIG_SECCOMP_FILTER
342342 .seccomp = { .filter_count = ATOMIC_INIT(0) },
@@ -348,8 +348,8 @@
348348 };
349349 EXPORT_SYMBOL(init_task);
350350
351---- linux-5.16.19.orig/kernel/kexec.c
352-+++ linux-5.16.19/kernel/kexec.c
351+--- linux-5.16.20.orig/kernel/kexec.c
352++++ linux-5.16.20/kernel/kexec.c
353353 @@ -16,7 +16,7 @@
354354 #include <linux/syscalls.h>
355355 #include <linux/vmalloc.h>
@@ -368,8 +368,8 @@
368368
369369 /* Permit LSMs and IMA to fail the kexec */
370370 result = security_kernel_load_data(LOADING_KEXEC_IMAGE, false);
371---- linux-5.16.19.orig/kernel/module.c
372-+++ linux-5.16.19/kernel/module.c
371+--- linux-5.16.20.orig/kernel/module.c
372++++ linux-5.16.20/kernel/module.c
373373 @@ -59,6 +59,7 @@
374374 #include <linux/audit.h>
375375 #include <uapi/linux/module.h>
@@ -396,8 +396,8 @@
396396
397397 return 0;
398398 }
399---- linux-5.16.19.orig/kernel/ptrace.c
400-+++ linux-5.16.19/kernel/ptrace.c
399+--- linux-5.16.20.orig/kernel/ptrace.c
400++++ linux-5.16.20/kernel/ptrace.c
401401 @@ -1296,6 +1296,11 @@ SYSCALL_DEFINE4(ptrace, long, request, l
402402 {
403403 struct task_struct *child;
@@ -422,8 +422,8 @@
422422
423423 if (request == PTRACE_TRACEME) {
424424 ret = ptrace_traceme();
425---- linux-5.16.19.orig/kernel/reboot.c
426-+++ linux-5.16.19/kernel/reboot.c
425+--- linux-5.16.20.orig/kernel/reboot.c
426++++ linux-5.16.20/kernel/reboot.c
427427 @@ -18,6 +18,7 @@
428428 #include <linux/syscalls.h>
429429 #include <linux/syscore_ops.h>
@@ -441,8 +441,8 @@
441441
442442 /*
443443 * If pid namespaces are enabled and the current task is in a child
444---- linux-5.16.19.orig/kernel/sched/core.c
445-+++ linux-5.16.19/kernel/sched/core.c
444+--- linux-5.16.20.orig/kernel/sched/core.c
445++++ linux-5.16.20/kernel/sched/core.c
446446 @@ -6935,6 +6935,8 @@ int can_nice(const struct task_struct *p
447447 SYSCALL_DEFINE1(nice, int, increment)
448448 {
@@ -452,8 +452,8 @@
452452
453453 /*
454454 * Setpriority might change our priority at the same moment.
455---- linux-5.16.19.orig/kernel/signal.c
456-+++ linux-5.16.19/kernel/signal.c
455+--- linux-5.16.20.orig/kernel/signal.c
456++++ linux-5.16.20/kernel/signal.c
457457 @@ -3762,6 +3762,8 @@ static inline void prepare_kill_siginfo(
458458 SYSCALL_DEFINE2(kill, pid_t, pid, int, sig)
459459 {
@@ -521,8 +521,8 @@
521521
522522 return do_send_specific(tgid, pid, sig, info);
523523 }
524---- linux-5.16.19.orig/kernel/sys.c
525-+++ linux-5.16.19/kernel/sys.c
524+--- linux-5.16.20.orig/kernel/sys.c
525++++ linux-5.16.20/kernel/sys.c
526526 @@ -211,6 +211,10 @@ SYSCALL_DEFINE3(setpriority, int, which,
527527
528528 if (which > PRIO_USER || which < PRIO_PROCESS)
@@ -552,8 +552,8 @@
552552
553553 errno = -EFAULT;
554554 if (!copy_from_user(tmp, name, len)) {
555---- linux-5.16.19.orig/kernel/time/timekeeping.c
556-+++ linux-5.16.19/kernel/time/timekeeping.c
555+--- linux-5.16.20.orig/kernel/time/timekeeping.c
556++++ linux-5.16.20/kernel/time/timekeeping.c
557557 @@ -22,6 +22,7 @@
558558 #include <linux/pvclock_gtod.h>
559559 #include <linux/compiler.h>
@@ -587,8 +587,8 @@
587587
588588 /*
589589 * Validate if a timespec/timeval used to inject a time
590---- linux-5.16.19.orig/net/ipv4/raw.c
591-+++ linux-5.16.19/net/ipv4/raw.c
590+--- linux-5.16.20.orig/net/ipv4/raw.c
591++++ linux-5.16.20/net/ipv4/raw.c
592592 @@ -771,6 +771,10 @@ static int raw_recvmsg(struct sock *sk,
593593 skb = skb_recv_datagram(sk, flags, noblock, &err);
594594 if (!skb)
@@ -600,8 +600,8 @@
600600
601601 copied = skb->len;
602602 if (len < copied) {
603---- linux-5.16.19.orig/net/ipv4/udp.c
604-+++ linux-5.16.19/net/ipv4/udp.c
603+--- linux-5.16.20.orig/net/ipv4/udp.c
604++++ linux-5.16.20/net/ipv4/udp.c
605605 @@ -1861,6 +1861,8 @@ try_again:
606606 skb = __skb_recv_udp(sk, flags, noblock, &off, &err);
607607 if (!skb)
@@ -611,8 +611,8 @@
611611
612612 ulen = udp_skb_len(skb);
613613 copied = len;
614---- linux-5.16.19.orig/net/ipv6/raw.c
615-+++ linux-5.16.19/net/ipv6/raw.c
614+--- linux-5.16.20.orig/net/ipv6/raw.c
615++++ linux-5.16.20/net/ipv6/raw.c
616616 @@ -480,6 +480,10 @@ static int rawv6_recvmsg(struct sock *sk
617617 skb = skb_recv_datagram(sk, flags, noblock, &err);
618618 if (!skb)
@@ -624,8 +624,8 @@
624624
625625 copied = skb->len;
626626 if (copied > len) {
627---- linux-5.16.19.orig/net/ipv6/udp.c
628-+++ linux-5.16.19/net/ipv6/udp.c
627+--- linux-5.16.20.orig/net/ipv6/udp.c
628++++ linux-5.16.20/net/ipv6/udp.c
629629 @@ -344,6 +344,8 @@ try_again:
630630 skb = __skb_recv_udp(sk, flags, noblock, &off, &err);
631631 if (!skb)
@@ -635,8 +635,8 @@
635635
636636 ulen = udp6_skb_len(skb);
637637 copied = len;
638---- linux-5.16.19.orig/net/socket.c
639-+++ linux-5.16.19/net/socket.c
638+--- linux-5.16.20.orig/net/socket.c
639++++ linux-5.16.20/net/socket.c
640640 @@ -1778,6 +1778,10 @@ struct file *do_accept(struct file *file
641641 if (err < 0)
642642 goto out_fd;
@@ -648,8 +648,8 @@
648648 if (upeer_sockaddr) {
649649 len = newsock->ops->getname(newsock,
650650 (struct sockaddr *)&address, 2);
651---- linux-5.16.19.orig/net/unix/af_unix.c
652-+++ linux-5.16.19/net/unix/af_unix.c
651+--- linux-5.16.20.orig/net/unix/af_unix.c
652++++ linux-5.16.20/net/unix/af_unix.c
653653 @@ -2331,6 +2331,10 @@ int __unix_dgram_recvmsg(struct sock *sk
654654 EPOLLOUT | EPOLLWRNORM |
655655 EPOLLWRBAND);
@@ -669,8 +669,8 @@
669669 mutex_unlock(&u->iolock);
670670 out:
671671 return err;
672---- linux-5.16.19.orig/security/Kconfig
673-+++ linux-5.16.19/security/Kconfig
672+--- linux-5.16.20.orig/security/Kconfig
673++++ linux-5.16.20/security/Kconfig
674674 @@ -281,5 +281,7 @@ config LSM
675675
676676 source "security/Kconfig.hardening"
@@ -679,8 +679,8 @@
679679 +
680680 endmenu
681681
682---- linux-5.16.19.orig/security/Makefile
683-+++ linux-5.16.19/security/Makefile
682+--- linux-5.16.20.orig/security/Makefile
683++++ linux-5.16.20/security/Makefile
684684 @@ -27,3 +27,6 @@ obj-$(CONFIG_SECURITY_LANDLOCK) += land
685685
686686 # Object integrity file lists
@@ -688,8 +688,8 @@
688688 +
689689 +subdir-$(CONFIG_CCSECURITY) += ccsecurity
690690 +obj-$(CONFIG_CCSECURITY) += ccsecurity/
691---- linux-5.16.19.orig/security/security.c
692-+++ linux-5.16.19/security/security.c
691+--- linux-5.16.20.orig/security/security.c
692++++ linux-5.16.20/security/security.c
693693 @@ -1669,7 +1669,9 @@ int security_task_alloc(struct task_stru
694694
695695 if (rc)
--- trunk/caitsith-patch/patches/ccs-patch-5.17.diff (revision 364)
+++ trunk/caitsith-patch/patches/ccs-patch-5.17.diff (revision 365)
@@ -1,6 +1,6 @@
1-This is TOMOYO Linux patch for kernel 5.17.2.
1+This is TOMOYO Linux patch for kernel 5.17.6.
22
3-Source code for this patch is https://www.kernel.org/pub/linux/kernel/v5.x/linux-5.17.2.tar.xz
3+Source code for this patch is https://www.kernel.org/pub/linux/kernel/v5.x/linux-5.17.6.tar.xz
44 ---
55 fs/exec.c | 2 -
66 fs/open.c | 2 +
@@ -28,8 +28,8 @@
2828 security/security.c | 5 ++-
2929 24 files changed, 160 insertions(+), 30 deletions(-)
3030
31---- linux-5.17.2.orig/fs/exec.c
32-+++ linux-5.17.2/fs/exec.c
31+--- linux-5.17.6.orig/fs/exec.c
32++++ linux-5.17.6/fs/exec.c
3333 @@ -1840,7 +1840,7 @@ static int bprm_execve(struct linux_binp
3434 if (retval)
3535 goto out;
@@ -39,8 +39,8 @@
3939 if (retval < 0)
4040 goto out;
4141
42---- linux-5.17.2.orig/fs/open.c
43-+++ linux-5.17.2/fs/open.c
42+--- linux-5.17.6.orig/fs/open.c
43++++ linux-5.17.6/fs/open.c
4444 @@ -1375,6 +1375,8 @@ SYSCALL_DEFINE3(close_range, unsigned in
4545 */
4646 SYSCALL_DEFINE0(vhangup)
@@ -50,8 +50,8 @@
5050 if (capable(CAP_SYS_TTY_CONFIG)) {
5151 tty_vhangup_self();
5252 return 0;
53---- linux-5.17.2.orig/fs/proc/version.c
54-+++ linux-5.17.2/fs/proc/version.c
53+--- linux-5.17.6.orig/fs/proc/version.c
54++++ linux-5.17.6/fs/proc/version.c
5555 @@ -21,3 +21,10 @@ static int __init proc_version_init(void
5656 return 0;
5757 }
@@ -59,12 +59,12 @@
5959 +
6060 +static int __init ccs_show_version(void)
6161 +{
62-+ printk(KERN_INFO "Hook version: 5.17.2 2022/04/11\n");
62++ printk(KERN_INFO "Hook version: 5.17.6 2022/05/11\n");
6363 + return 0;
6464 +}
6565 +fs_initcall(ccs_show_version);
66---- linux-5.17.2.orig/include/linux/sched.h
67-+++ linux-5.17.2/include/linux/sched.h
66+--- linux-5.17.6.orig/include/linux/sched.h
67++++ linux-5.17.6/include/linux/sched.h
6868 @@ -44,6 +44,7 @@ struct blk_plug;
6969 struct bpf_local_storage;
7070 struct bpf_run_ctx;
@@ -84,8 +84,8 @@
8484
8585 #ifdef CONFIG_TRACING
8686 /* State flags for use by tracers: */
87---- linux-5.17.2.orig/include/linux/security.h
88-+++ linux-5.17.2/include/linux/security.h
87+--- linux-5.17.6.orig/include/linux/security.h
88++++ linux-5.17.6/include/linux/security.h
8989 @@ -59,6 +59,7 @@ struct fs_parameter;
9090 enum fs_value_type;
9191 struct watch;
@@ -315,8 +315,8 @@
315315 }
316316 #endif /* CONFIG_SECURITY_PATH */
317317
318---- linux-5.17.2.orig/include/net/ip.h
319-+++ linux-5.17.2/include/net/ip.h
318+--- linux-5.17.6.orig/include/net/ip.h
319++++ linux-5.17.6/include/net/ip.h
320320 @@ -344,6 +344,8 @@ void inet_get_local_port_range(struct ne
321321 #ifdef CONFIG_SYSCTL
322322 static inline bool inet_is_local_reserved_port(struct net *net, unsigned short port)
@@ -335,8 +335,8 @@
335335 return false;
336336 }
337337
338---- linux-5.17.2.orig/init/init_task.c
339-+++ linux-5.17.2/init/init_task.c
338+--- linux-5.17.6.orig/init/init_task.c
339++++ linux-5.17.6/init/init_task.c
340340 @@ -209,6 +209,10 @@ struct task_struct init_task
341341 #ifdef CONFIG_SECCOMP_FILTER
342342 .seccomp = { .filter_count = ATOMIC_INIT(0) },
@@ -348,8 +348,8 @@
348348 };
349349 EXPORT_SYMBOL(init_task);
350350
351---- linux-5.17.2.orig/kernel/kexec.c
352-+++ linux-5.17.2/kernel/kexec.c
351+--- linux-5.17.6.orig/kernel/kexec.c
352++++ linux-5.17.6/kernel/kexec.c
353353 @@ -16,7 +16,7 @@
354354 #include <linux/syscalls.h>
355355 #include <linux/vmalloc.h>
@@ -368,8 +368,8 @@
368368
369369 /* Permit LSMs and IMA to fail the kexec */
370370 result = security_kernel_load_data(LOADING_KEXEC_IMAGE, false);
371---- linux-5.17.2.orig/kernel/module.c
372-+++ linux-5.17.2/kernel/module.c
371+--- linux-5.17.6.orig/kernel/module.c
372++++ linux-5.17.6/kernel/module.c
373373 @@ -59,6 +59,7 @@
374374 #include <linux/audit.h>
375375 #include <uapi/linux/module.h>
@@ -396,8 +396,8 @@
396396
397397 return 0;
398398 }
399---- linux-5.17.2.orig/kernel/ptrace.c
400-+++ linux-5.17.2/kernel/ptrace.c
399+--- linux-5.17.6.orig/kernel/ptrace.c
400++++ linux-5.17.6/kernel/ptrace.c
401401 @@ -1294,6 +1294,11 @@ SYSCALL_DEFINE4(ptrace, long, request, l
402402 {
403403 struct task_struct *child;
@@ -422,8 +422,8 @@
422422
423423 if (request == PTRACE_TRACEME) {
424424 ret = ptrace_traceme();
425---- linux-5.17.2.orig/kernel/reboot.c
426-+++ linux-5.17.2/kernel/reboot.c
425+--- linux-5.17.6.orig/kernel/reboot.c
426++++ linux-5.17.6/kernel/reboot.c
427427 @@ -18,6 +18,7 @@
428428 #include <linux/syscalls.h>
429429 #include <linux/syscore_ops.h>
@@ -441,9 +441,9 @@
441441
442442 /*
443443 * If pid namespaces are enabled and the current task is in a child
444---- linux-5.17.2.orig/kernel/sched/core.c
445-+++ linux-5.17.2/kernel/sched/core.c
446-@@ -6977,6 +6977,8 @@ int can_nice(const struct task_struct *p
444+--- linux-5.17.6.orig/kernel/sched/core.c
445++++ linux-5.17.6/kernel/sched/core.c
446+@@ -6983,6 +6983,8 @@ int can_nice(const struct task_struct *p
447447 SYSCALL_DEFINE1(nice, int, increment)
448448 {
449449 long nice, retval;
@@ -452,8 +452,8 @@
452452
453453 /*
454454 * Setpriority might change our priority at the same moment.
455---- linux-5.17.2.orig/kernel/signal.c
456-+++ linux-5.17.2/kernel/signal.c
455+--- linux-5.17.6.orig/kernel/signal.c
456++++ linux-5.17.6/kernel/signal.c
457457 @@ -3773,6 +3773,8 @@ static inline void prepare_kill_siginfo(
458458 SYSCALL_DEFINE2(kill, pid_t, pid, int, sig)
459459 {
@@ -521,8 +521,8 @@
521521
522522 return do_send_specific(tgid, pid, sig, info);
523523 }
524---- linux-5.17.2.orig/kernel/sys.c
525-+++ linux-5.17.2/kernel/sys.c
524+--- linux-5.17.6.orig/kernel/sys.c
525++++ linux-5.17.6/kernel/sys.c
526526 @@ -212,6 +212,10 @@ SYSCALL_DEFINE3(setpriority, int, which,
527527
528528 if (which > PRIO_USER || which < PRIO_PROCESS)
@@ -552,8 +552,8 @@
552552
553553 errno = -EFAULT;
554554 if (!copy_from_user(tmp, name, len)) {
555---- linux-5.17.2.orig/kernel/time/timekeeping.c
556-+++ linux-5.17.2/kernel/time/timekeeping.c
555+--- linux-5.17.6.orig/kernel/time/timekeeping.c
556++++ linux-5.17.6/kernel/time/timekeeping.c
557557 @@ -22,6 +22,7 @@
558558 #include <linux/pvclock_gtod.h>
559559 #include <linux/compiler.h>
@@ -587,8 +587,8 @@
587587
588588 /*
589589 * Validate if a timespec/timeval used to inject a time
590---- linux-5.17.2.orig/net/ipv4/raw.c
591-+++ linux-5.17.2/net/ipv4/raw.c
590+--- linux-5.17.6.orig/net/ipv4/raw.c
591++++ linux-5.17.6/net/ipv4/raw.c
592592 @@ -772,6 +772,10 @@ static int raw_recvmsg(struct sock *sk,
593593 skb = skb_recv_datagram(sk, flags, noblock, &err);
594594 if (!skb)
@@ -600,8 +600,8 @@
600600
601601 copied = skb->len;
602602 if (len < copied) {
603---- linux-5.17.2.orig/net/ipv4/udp.c
604-+++ linux-5.17.2/net/ipv4/udp.c
603+--- linux-5.17.6.orig/net/ipv4/udp.c
604++++ linux-5.17.6/net/ipv4/udp.c
605605 @@ -1862,6 +1862,8 @@ try_again:
606606 skb = __skb_recv_udp(sk, flags, noblock, &off, &err);
607607 if (!skb)
@@ -611,8 +611,8 @@
611611
612612 ulen = udp_skb_len(skb);
613613 copied = len;
614---- linux-5.17.2.orig/net/ipv6/raw.c
615-+++ linux-5.17.2/net/ipv6/raw.c
614+--- linux-5.17.6.orig/net/ipv6/raw.c
615++++ linux-5.17.6/net/ipv6/raw.c
616616 @@ -480,6 +480,10 @@ static int rawv6_recvmsg(struct sock *sk
617617 skb = skb_recv_datagram(sk, flags, noblock, &err);
618618 if (!skb)
@@ -624,8 +624,8 @@
624624
625625 copied = skb->len;
626626 if (copied > len) {
627---- linux-5.17.2.orig/net/ipv6/udp.c
628-+++ linux-5.17.2/net/ipv6/udp.c
627+--- linux-5.17.6.orig/net/ipv6/udp.c
628++++ linux-5.17.6/net/ipv6/udp.c
629629 @@ -345,6 +345,8 @@ try_again:
630630 skb = __skb_recv_udp(sk, flags, noblock, &off, &err);
631631 if (!skb)
@@ -635,8 +635,8 @@
635635
636636 ulen = udp6_skb_len(skb);
637637 copied = len;
638---- linux-5.17.2.orig/net/socket.c
639-+++ linux-5.17.2/net/socket.c
638+--- linux-5.17.6.orig/net/socket.c
639++++ linux-5.17.6/net/socket.c
640640 @@ -1779,6 +1779,10 @@ struct file *do_accept(struct file *file
641641 if (err < 0)
642642 goto out_fd;
@@ -648,8 +648,8 @@
648648 if (upeer_sockaddr) {
649649 len = newsock->ops->getname(newsock,
650650 (struct sockaddr *)&address, 2);
651---- linux-5.17.2.orig/net/unix/af_unix.c
652-+++ linux-5.17.2/net/unix/af_unix.c
651+--- linux-5.17.6.orig/net/unix/af_unix.c
652++++ linux-5.17.6/net/unix/af_unix.c
653653 @@ -2419,6 +2419,10 @@ int __unix_dgram_recvmsg(struct sock *sk
654654 EPOLLOUT | EPOLLWRNORM |
655655 EPOLLWRBAND);
@@ -669,8 +669,8 @@
669669 mutex_unlock(&u->iolock);
670670 out:
671671 return err;
672---- linux-5.17.2.orig/security/Kconfig
673-+++ linux-5.17.2/security/Kconfig
672+--- linux-5.17.6.orig/security/Kconfig
673++++ linux-5.17.6/security/Kconfig
674674 @@ -281,5 +281,7 @@ config LSM
675675
676676 source "security/Kconfig.hardening"
@@ -679,8 +679,8 @@
679679 +
680680 endmenu
681681
682---- linux-5.17.2.orig/security/Makefile
683-+++ linux-5.17.2/security/Makefile
682+--- linux-5.17.6.orig/security/Makefile
683++++ linux-5.17.6/security/Makefile
684684 @@ -27,3 +27,6 @@ obj-$(CONFIG_SECURITY_LANDLOCK) += land
685685
686686 # Object integrity file lists
@@ -688,8 +688,8 @@
688688 +
689689 +subdir-$(CONFIG_CCSECURITY) += ccsecurity
690690 +obj-$(CONFIG_CCSECURITY) += ccsecurity/
691---- linux-5.17.2.orig/security/security.c
692-+++ linux-5.17.2/security/security.c
691+--- linux-5.17.6.orig/security/security.c
692++++ linux-5.17.6/security/security.c
693693 @@ -1661,7 +1661,9 @@ int security_task_alloc(struct task_stru
694694
695695 if (rc)
--- trunk/caitsith-patch/patches/ccs-patch-5.18.diff (revision 364)
+++ trunk/caitsith-patch/patches/ccs-patch-5.18.diff (revision 365)
@@ -1,6 +1,6 @@
1-This is TOMOYO Linux patch for kernel 5.18-rc2.
1+This is TOMOYO Linux patch for kernel 5.18-rc6.
22
3-Source code for this patch is https://git.kernel.org/torvalds/t/linux-5.18-rc2.tar.gz
3+Source code for this patch is https://git.kernel.org/torvalds/t/linux-5.18-rc6.tar.gz
44 ---
55 fs/exec.c | 2 -
66 fs/open.c | 2 +
@@ -28,8 +28,8 @@
2828 security/security.c | 5 ++-
2929 24 files changed, 160 insertions(+), 30 deletions(-)
3030
31---- linux-5.18-rc2.orig/fs/exec.c
32-+++ linux-5.18-rc2/fs/exec.c
31+--- linux-5.18-rc6.orig/fs/exec.c
32++++ linux-5.18-rc6/fs/exec.c
3333 @@ -1833,7 +1833,7 @@ static int bprm_execve(struct linux_binp
3434 if (retval)
3535 goto out;
@@ -39,8 +39,8 @@
3939 if (retval < 0)
4040 goto out;
4141
42---- linux-5.18-rc2.orig/fs/open.c
43-+++ linux-5.18-rc2/fs/open.c
42+--- linux-5.18-rc6.orig/fs/open.c
43++++ linux-5.18-rc6/fs/open.c
4444 @@ -1374,6 +1374,8 @@ SYSCALL_DEFINE3(close_range, unsigned in
4545 */
4646 SYSCALL_DEFINE0(vhangup)
@@ -50,8 +50,8 @@
5050 if (capable(CAP_SYS_TTY_CONFIG)) {
5151 tty_vhangup_self();
5252 return 0;
53---- linux-5.18-rc2.orig/fs/proc/version.c
54-+++ linux-5.18-rc2/fs/proc/version.c
53+--- linux-5.18-rc6.orig/fs/proc/version.c
54++++ linux-5.18-rc6/fs/proc/version.c
5555 @@ -21,3 +21,10 @@ static int __init proc_version_init(void
5656 return 0;
5757 }
@@ -59,12 +59,12 @@
5959 +
6060 +static int __init ccs_show_version(void)
6161 +{
62-+ printk(KERN_INFO "Hook version: 5.18-rc2 2022/04/11\n");
62++ printk(KERN_INFO "Hook version: 5.18-rc6 2022/05/11\n");
6363 + return 0;
6464 +}
6565 +fs_initcall(ccs_show_version);
66---- linux-5.18-rc2.orig/include/linux/sched.h
67-+++ linux-5.18-rc2/include/linux/sched.h
66+--- linux-5.18-rc6.orig/include/linux/sched.h
67++++ linux-5.18-rc6/include/linux/sched.h
6868 @@ -44,6 +44,7 @@ struct blk_plug;
6969 struct bpf_local_storage;
7070 struct bpf_run_ctx;
@@ -84,8 +84,8 @@
8484
8585 #ifdef CONFIG_TRACING
8686 /* State flags for use by tracers: */
87---- linux-5.18-rc2.orig/include/linux/security.h
88-+++ linux-5.18-rc2/include/linux/security.h
87+--- linux-5.18-rc6.orig/include/linux/security.h
88++++ linux-5.18-rc6/include/linux/security.h
8989 @@ -59,6 +59,7 @@ struct fs_parameter;
9090 enum fs_value_type;
9191 struct watch;
@@ -315,8 +315,8 @@
315315 }
316316 #endif /* CONFIG_SECURITY_PATH */
317317
318---- linux-5.18-rc2.orig/include/net/ip.h
319-+++ linux-5.18-rc2/include/net/ip.h
318+--- linux-5.18-rc6.orig/include/net/ip.h
319++++ linux-5.18-rc6/include/net/ip.h
320320 @@ -344,6 +344,8 @@ void inet_get_local_port_range(struct ne
321321 #ifdef CONFIG_SYSCTL
322322 static inline bool inet_is_local_reserved_port(struct net *net, unsigned short port)
@@ -335,8 +335,8 @@
335335 return false;
336336 }
337337
338---- linux-5.18-rc2.orig/init/init_task.c
339-+++ linux-5.18-rc2/init/init_task.c
338+--- linux-5.18-rc6.orig/init/init_task.c
339++++ linux-5.18-rc6/init/init_task.c
340340 @@ -209,6 +209,10 @@ struct task_struct init_task
341341 #ifdef CONFIG_SECCOMP_FILTER
342342 .seccomp = { .filter_count = ATOMIC_INIT(0) },
@@ -348,8 +348,8 @@
348348 };
349349 EXPORT_SYMBOL(init_task);
350350
351---- linux-5.18-rc2.orig/kernel/kexec.c
352-+++ linux-5.18-rc2/kernel/kexec.c
351+--- linux-5.18-rc6.orig/kernel/kexec.c
352++++ linux-5.18-rc6/kernel/kexec.c
353353 @@ -16,7 +16,7 @@
354354 #include <linux/syscalls.h>
355355 #include <linux/vmalloc.h>
@@ -368,8 +368,8 @@
368368
369369 /* Permit LSMs and IMA to fail the kexec */
370370 result = security_kernel_load_data(LOADING_KEXEC_IMAGE, false);
371---- linux-5.18-rc2.orig/kernel/module.c
372-+++ linux-5.18-rc2/kernel/module.c
371+--- linux-5.18-rc6.orig/kernel/module.c
372++++ linux-5.18-rc6/kernel/module.c
373373 @@ -59,6 +59,7 @@
374374 #include <linux/audit.h>
375375 #include <uapi/linux/module.h>
@@ -396,8 +396,8 @@
396396
397397 return 0;
398398 }
399---- linux-5.18-rc2.orig/kernel/ptrace.c
400-+++ linux-5.18-rc2/kernel/ptrace.c
399+--- linux-5.18-rc6.orig/kernel/ptrace.c
400++++ linux-5.18-rc6/kernel/ptrace.c
401401 @@ -1294,6 +1294,11 @@ SYSCALL_DEFINE4(ptrace, long, request, l
402402 {
403403 struct task_struct *child;
@@ -422,8 +422,8 @@
422422
423423 if (request == PTRACE_TRACEME) {
424424 ret = ptrace_traceme();
425---- linux-5.18-rc2.orig/kernel/reboot.c
426-+++ linux-5.18-rc2/kernel/reboot.c
425+--- linux-5.18-rc6.orig/kernel/reboot.c
426++++ linux-5.18-rc6/kernel/reboot.c
427427 @@ -18,6 +18,7 @@
428428 #include <linux/syscalls.h>
429429 #include <linux/syscore_ops.h>
@@ -441,8 +441,8 @@
441441
442442 /*
443443 * If pid namespaces are enabled and the current task is in a child
444---- linux-5.18-rc2.orig/kernel/sched/core.c
445-+++ linux-5.18-rc2/kernel/sched/core.c
444+--- linux-5.18-rc6.orig/kernel/sched/core.c
445++++ linux-5.18-rc6/kernel/sched/core.c
446446 @@ -6953,6 +6953,8 @@ int can_nice(const struct task_struct *p
447447 SYSCALL_DEFINE1(nice, int, increment)
448448 {
@@ -452,8 +452,8 @@
452452
453453 /*
454454 * Setpriority might change our priority at the same moment.
455---- linux-5.18-rc2.orig/kernel/signal.c
456-+++ linux-5.18-rc2/kernel/signal.c
455+--- linux-5.18-rc6.orig/kernel/signal.c
456++++ linux-5.18-rc6/kernel/signal.c
457457 @@ -3775,6 +3775,8 @@ static inline void prepare_kill_siginfo(
458458 SYSCALL_DEFINE2(kill, pid_t, pid, int, sig)
459459 {
@@ -521,8 +521,8 @@
521521
522522 return do_send_specific(tgid, pid, sig, info);
523523 }
524---- linux-5.18-rc2.orig/kernel/sys.c
525-+++ linux-5.18-rc2/kernel/sys.c
524+--- linux-5.18-rc6.orig/kernel/sys.c
525++++ linux-5.18-rc6/kernel/sys.c
526526 @@ -212,6 +212,10 @@ SYSCALL_DEFINE3(setpriority, int, which,
527527
528528 if (which > PRIO_USER || which < PRIO_PROCESS)
@@ -552,8 +552,8 @@
552552
553553 errno = -EFAULT;
554554 if (!copy_from_user(tmp, name, len)) {
555---- linux-5.18-rc2.orig/kernel/time/timekeeping.c
556-+++ linux-5.18-rc2/kernel/time/timekeeping.c
555+--- linux-5.18-rc6.orig/kernel/time/timekeeping.c
556++++ linux-5.18-rc6/kernel/time/timekeeping.c
557557 @@ -22,6 +22,7 @@
558558 #include <linux/pvclock_gtod.h>
559559 #include <linux/compiler.h>
@@ -587,8 +587,8 @@
587587
588588 /*
589589 * Validate if a timespec/timeval used to inject a time
590---- linux-5.18-rc2.orig/net/ipv4/raw.c
591-+++ linux-5.18-rc2/net/ipv4/raw.c
590+--- linux-5.18-rc6.orig/net/ipv4/raw.c
591++++ linux-5.18-rc6/net/ipv4/raw.c
592592 @@ -772,6 +772,10 @@ static int raw_recvmsg(struct sock *sk,
593593 skb = skb_recv_datagram(sk, flags, noblock, &err);
594594 if (!skb)
@@ -600,8 +600,8 @@
600600
601601 copied = skb->len;
602602 if (len < copied) {
603---- linux-5.18-rc2.orig/net/ipv4/udp.c
604-+++ linux-5.18-rc2/net/ipv4/udp.c
603+--- linux-5.18-rc6.orig/net/ipv4/udp.c
604++++ linux-5.18-rc6/net/ipv4/udp.c
605605 @@ -1862,6 +1862,8 @@ try_again:
606606 skb = __skb_recv_udp(sk, flags, noblock, &off, &err);
607607 if (!skb)
@@ -611,8 +611,8 @@
611611
612612 ulen = udp_skb_len(skb);
613613 copied = len;
614---- linux-5.18-rc2.orig/net/ipv6/raw.c
615-+++ linux-5.18-rc2/net/ipv6/raw.c
614+--- linux-5.18-rc6.orig/net/ipv6/raw.c
615++++ linux-5.18-rc6/net/ipv6/raw.c
616616 @@ -480,6 +480,10 @@ static int rawv6_recvmsg(struct sock *sk
617617 skb = skb_recv_datagram(sk, flags, noblock, &err);
618618 if (!skb)
@@ -624,8 +624,8 @@
624624
625625 copied = skb->len;
626626 if (copied > len) {
627---- linux-5.18-rc2.orig/net/ipv6/udp.c
628-+++ linux-5.18-rc2/net/ipv6/udp.c
627+--- linux-5.18-rc6.orig/net/ipv6/udp.c
628++++ linux-5.18-rc6/net/ipv6/udp.c
629629 @@ -345,6 +345,8 @@ try_again:
630630 skb = __skb_recv_udp(sk, flags, noblock, &off, &err);
631631 if (!skb)
@@ -635,8 +635,8 @@
635635
636636 ulen = udp6_skb_len(skb);
637637 copied = len;
638---- linux-5.18-rc2.orig/net/socket.c
639-+++ linux-5.18-rc2/net/socket.c
638+--- linux-5.18-rc6.orig/net/socket.c
639++++ linux-5.18-rc6/net/socket.c
640640 @@ -1779,6 +1779,10 @@ struct file *do_accept(struct file *file
641641 if (err < 0)
642642 goto out_fd;
@@ -648,8 +648,8 @@
648648 if (upeer_sockaddr) {
649649 len = newsock->ops->getname(newsock,
650650 (struct sockaddr *)&address, 2);
651---- linux-5.18-rc2.orig/net/unix/af_unix.c
652-+++ linux-5.18-rc2/net/unix/af_unix.c
651+--- linux-5.18-rc6.orig/net/unix/af_unix.c
652++++ linux-5.18-rc6/net/unix/af_unix.c
653653 @@ -2419,6 +2419,10 @@ int __unix_dgram_recvmsg(struct sock *sk
654654 EPOLLOUT | EPOLLWRNORM |
655655 EPOLLWRBAND);
@@ -669,8 +669,8 @@
669669 mutex_unlock(&u->iolock);
670670 out:
671671 return err;
672---- linux-5.18-rc2.orig/security/Kconfig
673-+++ linux-5.18-rc2/security/Kconfig
672+--- linux-5.18-rc6.orig/security/Kconfig
673++++ linux-5.18-rc6/security/Kconfig
674674 @@ -282,5 +282,7 @@ config LSM
675675
676676 source "security/Kconfig.hardening"
@@ -679,8 +679,8 @@
679679 +
680680 endmenu
681681
682---- linux-5.18-rc2.orig/security/Makefile
683-+++ linux-5.18-rc2/security/Makefile
682+--- linux-5.18-rc6.orig/security/Makefile
683++++ linux-5.18-rc6/security/Makefile
684684 @@ -27,3 +27,6 @@ obj-$(CONFIG_SECURITY_LANDLOCK) += land
685685
686686 # Object integrity file lists
@@ -688,8 +688,8 @@
688688 +
689689 +subdir-$(CONFIG_CCSECURITY) += ccsecurity
690690 +obj-$(CONFIG_CCSECURITY) += ccsecurity/
691---- linux-5.18-rc2.orig/security/security.c
692-+++ linux-5.18-rc2/security/security.c
691+--- linux-5.18-rc6.orig/security/security.c
692++++ linux-5.18-rc6/security/security.c
693693 @@ -1661,7 +1661,9 @@ int security_task_alloc(struct task_stru
694694
695695 if (rc)
--- trunk/caitsith-patch/patches/ccs-patch-5.4.diff (revision 364)
+++ trunk/caitsith-patch/patches/ccs-patch-5.4.diff (revision 365)
@@ -1,6 +1,6 @@
1-This is TOMOYO Linux patch for kernel 5.4.188.
1+This is TOMOYO Linux patch for kernel 5.4.192.
22
3-Source code for this patch is https://www.kernel.org/pub/linux/kernel/v5.x/linux-5.4.188.tar.xz
3+Source code for this patch is https://www.kernel.org/pub/linux/kernel/v5.x/linux-5.4.192.tar.xz
44 ---
55 fs/exec.c | 2 -
66 fs/open.c | 2 +
@@ -28,8 +28,8 @@
2828 security/security.c | 5 ++-
2929 24 files changed, 160 insertions(+), 30 deletions(-)
3030
31---- linux-5.4.188.orig/fs/exec.c
32-+++ linux-5.4.188/fs/exec.c
31+--- linux-5.4.192.orig/fs/exec.c
32++++ linux-5.4.192/fs/exec.c
3333 @@ -1730,7 +1730,7 @@ static int exec_binprm(struct linux_binp
3434 old_vpid = task_pid_nr_ns(current, task_active_pid_ns(current->parent));
3535 rcu_read_unlock();
@@ -39,8 +39,8 @@
3939 if (ret >= 0) {
4040 audit_bprm(bprm);
4141 trace_sched_process_exec(current, old_pid, bprm);
42---- linux-5.4.188.orig/fs/open.c
43-+++ linux-5.4.188/fs/open.c
42+--- linux-5.4.192.orig/fs/open.c
43++++ linux-5.4.192/fs/open.c
4444 @@ -1205,6 +1205,8 @@ SYSCALL_DEFINE1(close, unsigned int, fd)
4545 */
4646 SYSCALL_DEFINE0(vhangup)
@@ -50,8 +50,8 @@
5050 if (capable(CAP_SYS_TTY_CONFIG)) {
5151 tty_vhangup_self();
5252 return 0;
53---- linux-5.4.188.orig/fs/proc/version.c
54-+++ linux-5.4.188/fs/proc/version.c
53+--- linux-5.4.192.orig/fs/proc/version.c
54++++ linux-5.4.192/fs/proc/version.c
5555 @@ -21,3 +21,10 @@ static int __init proc_version_init(void
5656 return 0;
5757 }
@@ -59,12 +59,12 @@
5959 +
6060 +static int __init ccs_show_version(void)
6161 +{
62-+ printk(KERN_INFO "Hook version: 5.4.188 2022/04/04\n");
62++ printk(KERN_INFO "Hook version: 5.4.192 2022/05/11\n");
6363 + return 0;
6464 +}
6565 +fs_initcall(ccs_show_version);
66---- linux-5.4.188.orig/include/linux/sched.h
67-+++ linux-5.4.188/include/linux/sched.h
66+--- linux-5.4.192.orig/include/linux/sched.h
67++++ linux-5.4.192/include/linux/sched.h
6868 @@ -38,6 +38,7 @@ struct backing_dev_info;
6969 struct bio_list;
7070 struct blk_plug;
@@ -73,7 +73,7 @@
7373 struct cfs_rq;
7474 struct fs_struct;
7575 struct futex_pi_state;
76-@@ -1262,6 +1263,10 @@ struct task_struct {
76+@@ -1263,6 +1264,10 @@ struct task_struct {
7777 /* Used by LSM modules for access restriction: */
7878 void *security;
7979 #endif
@@ -84,8 +84,8 @@
8484
8585 #ifdef CONFIG_GCC_PLUGIN_STACKLEAK
8686 unsigned long lowest_stack;
87---- linux-5.4.188.orig/include/linux/security.h
88-+++ linux-5.4.188/include/linux/security.h
87+--- linux-5.4.192.orig/include/linux/security.h
88++++ linux-5.4.192/include/linux/security.h
8989 @@ -57,6 +57,7 @@ struct mm_struct;
9090 struct fs_context;
9191 struct fs_parameter;
@@ -315,8 +315,8 @@
315315 }
316316 #endif /* CONFIG_SECURITY_PATH */
317317
318---- linux-5.4.188.orig/include/net/ip.h
319-+++ linux-5.4.188/include/net/ip.h
318+--- linux-5.4.192.orig/include/net/ip.h
319++++ linux-5.4.192/include/net/ip.h
320320 @@ -342,6 +342,8 @@ void inet_get_local_port_range(struct ne
321321 #ifdef CONFIG_SYSCTL
322322 static inline int inet_is_local_reserved_port(struct net *net, int port)
@@ -335,8 +335,8 @@
335335 return 0;
336336 }
337337
338---- linux-5.4.188.orig/init/init_task.c
339-+++ linux-5.4.188/init/init_task.c
338+--- linux-5.4.192.orig/init/init_task.c
339++++ linux-5.4.192/init/init_task.c
340340 @@ -183,6 +183,10 @@ struct task_struct init_task
341341 #ifdef CONFIG_SECURITY
342342 .security = NULL,
@@ -348,8 +348,8 @@
348348 };
349349 EXPORT_SYMBOL(init_task);
350350
351---- linux-5.4.188.orig/kernel/kexec.c
352-+++ linux-5.4.188/kernel/kexec.c
351+--- linux-5.4.192.orig/kernel/kexec.c
352++++ linux-5.4.192/kernel/kexec.c
353353 @@ -16,7 +16,7 @@
354354 #include <linux/syscalls.h>
355355 #include <linux/vmalloc.h>
@@ -368,8 +368,8 @@
368368
369369 /* Permit LSMs and IMA to fail the kexec */
370370 result = security_kernel_load_data(LOADING_KEXEC_IMAGE);
371---- linux-5.4.188.orig/kernel/module.c
372-+++ linux-5.4.188/kernel/module.c
371+--- linux-5.4.192.orig/kernel/module.c
372++++ linux-5.4.192/kernel/module.c
373373 @@ -55,6 +55,7 @@
374374 #include <linux/audit.h>
375375 #include <uapi/linux/module.h>
@@ -396,9 +396,9 @@
396396
397397 return 0;
398398 }
399---- linux-5.4.188.orig/kernel/ptrace.c
400-+++ linux-5.4.188/kernel/ptrace.c
401-@@ -1254,6 +1254,11 @@ SYSCALL_DEFINE4(ptrace, long, request, l
399+--- linux-5.4.192.orig/kernel/ptrace.c
400++++ linux-5.4.192/kernel/ptrace.c
401+@@ -1271,6 +1271,11 @@ SYSCALL_DEFINE4(ptrace, long, request, l
402402 {
403403 struct task_struct *child;
404404 long ret;
@@ -410,7 +410,7 @@
410410
411411 if (request == PTRACE_TRACEME) {
412412 ret = ptrace_traceme();
413-@@ -1401,6 +1406,11 @@ COMPAT_SYSCALL_DEFINE4(ptrace, compat_lo
413+@@ -1418,6 +1423,11 @@ COMPAT_SYSCALL_DEFINE4(ptrace, compat_lo
414414 {
415415 struct task_struct *child;
416416 long ret;
@@ -422,8 +422,8 @@
422422
423423 if (request == PTRACE_TRACEME) {
424424 ret = ptrace_traceme();
425---- linux-5.4.188.orig/kernel/reboot.c
426-+++ linux-5.4.188/kernel/reboot.c
425+--- linux-5.4.192.orig/kernel/reboot.c
426++++ linux-5.4.192/kernel/reboot.c
427427 @@ -17,6 +17,7 @@
428428 #include <linux/syscalls.h>
429429 #include <linux/syscore_ops.h>
@@ -441,8 +441,8 @@
441441
442442 /*
443443 * If pid namespaces are enabled and the current task is in a child
444---- linux-5.4.188.orig/kernel/sched/core.c
445-+++ linux-5.4.188/kernel/sched/core.c
444+--- linux-5.4.192.orig/kernel/sched/core.c
445++++ linux-5.4.192/kernel/sched/core.c
446446 @@ -4677,6 +4677,8 @@ int can_nice(const struct task_struct *p
447447 SYSCALL_DEFINE1(nice, int, increment)
448448 {
@@ -452,8 +452,8 @@
452452
453453 /*
454454 * Setpriority might change our priority at the same moment.
455---- linux-5.4.188.orig/kernel/signal.c
456-+++ linux-5.4.188/kernel/signal.c
455+--- linux-5.4.192.orig/kernel/signal.c
456++++ linux-5.4.192/kernel/signal.c
457457 @@ -3634,6 +3634,8 @@ static inline void prepare_kill_siginfo(
458458 SYSCALL_DEFINE2(kill, pid_t, pid, int, sig)
459459 {
@@ -521,8 +521,8 @@
521521
522522 return do_send_specific(tgid, pid, sig, info);
523523 }
524---- linux-5.4.188.orig/kernel/sys.c
525-+++ linux-5.4.188/kernel/sys.c
524+--- linux-5.4.192.orig/kernel/sys.c
525++++ linux-5.4.192/kernel/sys.c
526526 @@ -204,6 +204,10 @@ SYSCALL_DEFINE3(setpriority, int, which,
527527
528528 if (which > PRIO_USER || which < PRIO_PROCESS)
@@ -552,8 +552,8 @@
552552
553553 errno = -EFAULT;
554554 if (!copy_from_user(tmp, name, len)) {
555---- linux-5.4.188.orig/kernel/time/timekeeping.c
556-+++ linux-5.4.188/kernel/time/timekeeping.c
555+--- linux-5.4.192.orig/kernel/time/timekeeping.c
556++++ linux-5.4.192/kernel/time/timekeeping.c
557557 @@ -22,6 +22,7 @@
558558 #include <linux/pvclock_gtod.h>
559559 #include <linux/compiler.h>
@@ -587,8 +587,8 @@
587587
588588 /*
589589 * Validate if a timespec/timeval used to inject a time
590---- linux-5.4.188.orig/net/ipv4/raw.c
591-+++ linux-5.4.188/net/ipv4/raw.c
590+--- linux-5.4.192.orig/net/ipv4/raw.c
591++++ linux-5.4.192/net/ipv4/raw.c
592592 @@ -770,6 +770,10 @@ static int raw_recvmsg(struct sock *sk,
593593 skb = skb_recv_datagram(sk, flags, noblock, &err);
594594 if (!skb)
@@ -600,9 +600,9 @@
600600
601601 copied = skb->len;
602602 if (len < copied) {
603---- linux-5.4.188.orig/net/ipv4/udp.c
604-+++ linux-5.4.188/net/ipv4/udp.c
605-@@ -1745,6 +1745,8 @@ try_again:
603+--- linux-5.4.192.orig/net/ipv4/udp.c
604++++ linux-5.4.192/net/ipv4/udp.c
605+@@ -1751,6 +1751,8 @@ try_again:
606606 skb = __skb_recv_udp(sk, flags, noblock, &off, &err);
607607 if (!skb)
608608 return err;
@@ -611,8 +611,8 @@
611611
612612 ulen = udp_skb_len(skb);
613613 copied = len;
614---- linux-5.4.188.orig/net/ipv6/raw.c
615-+++ linux-5.4.188/net/ipv6/raw.c
614+--- linux-5.4.192.orig/net/ipv6/raw.c
615++++ linux-5.4.192/net/ipv6/raw.c
616616 @@ -480,6 +480,10 @@ static int rawv6_recvmsg(struct sock *sk
617617 skb = skb_recv_datagram(sk, flags, noblock, &err);
618618 if (!skb)
@@ -624,8 +624,8 @@
624624
625625 copied = skb->len;
626626 if (copied > len) {
627---- linux-5.4.188.orig/net/ipv6/udp.c
628-+++ linux-5.4.188/net/ipv6/udp.c
627+--- linux-5.4.192.orig/net/ipv6/udp.c
628++++ linux-5.4.192/net/ipv6/udp.c
629629 @@ -292,6 +292,8 @@ try_again:
630630 skb = __skb_recv_udp(sk, flags, noblock, &off, &err);
631631 if (!skb)
@@ -635,8 +635,8 @@
635635
636636 ulen = udp6_skb_len(skb);
637637 copied = len;
638---- linux-5.4.188.orig/net/socket.c
639-+++ linux-5.4.188/net/socket.c
638+--- linux-5.4.192.orig/net/socket.c
639++++ linux-5.4.192/net/socket.c
640640 @@ -1744,6 +1744,10 @@ int __sys_accept4(int fd, struct sockadd
641641 if (err < 0)
642642 goto out_fd;
@@ -648,8 +648,8 @@
648648 if (upeer_sockaddr) {
649649 len = newsock->ops->getname(newsock,
650650 (struct sockaddr *)&address, 2);
651---- linux-5.4.188.orig/net/unix/af_unix.c
652-+++ linux-5.4.188/net/unix/af_unix.c
651+--- linux-5.4.192.orig/net/unix/af_unix.c
652++++ linux-5.4.192/net/unix/af_unix.c
653653 @@ -2164,6 +2164,10 @@ static int unix_dgram_recvmsg(struct soc
654654 EPOLLOUT | EPOLLWRNORM |
655655 EPOLLWRBAND);
@@ -669,8 +669,8 @@
669669 mutex_unlock(&u->iolock);
670670 out:
671671 return err;
672---- linux-5.4.188.orig/security/Kconfig
673-+++ linux-5.4.188/security/Kconfig
672+--- linux-5.4.192.orig/security/Kconfig
673++++ linux-5.4.192/security/Kconfig
674674 @@ -294,5 +294,7 @@ config LSM
675675
676676 source "security/Kconfig.hardening"
@@ -679,8 +679,8 @@
679679 +
680680 endmenu
681681
682---- linux-5.4.188.orig/security/Makefile
683-+++ linux-5.4.188/security/Makefile
682+--- linux-5.4.192.orig/security/Makefile
683++++ linux-5.4.192/security/Makefile
684684 @@ -34,3 +34,6 @@ obj-$(CONFIG_CGROUP_DEVICE) += device_c
685685 # Object integrity file lists
686686 subdir-$(CONFIG_INTEGRITY) += integrity
@@ -688,9 +688,9 @@
688688 +
689689 +subdir-$(CONFIG_CCSECURITY) += ccsecurity
690690 +obj-$(CONFIG_CCSECURITY) += ccsecurity/
691---- linux-5.4.188.orig/security/security.c
692-+++ linux-5.4.188/security/security.c
693-@@ -1507,7 +1507,9 @@ int security_task_alloc(struct task_stru
691+--- linux-5.4.192.orig/security/security.c
692++++ linux-5.4.192/security/security.c
693+@@ -1520,7 +1520,9 @@ int security_task_alloc(struct task_stru
694694
695695 if (rc)
696696 return rc;
@@ -701,7 +701,7 @@
701701 if (unlikely(rc))
702702 security_task_free(task);
703703 return rc;
704-@@ -1516,6 +1518,7 @@ int security_task_alloc(struct task_stru
704+@@ -1529,6 +1531,7 @@ int security_task_alloc(struct task_stru
705705 void security_task_free(struct task_struct *task)
706706 {
707707 call_void_hook(task_free, task);
--- trunk/caitsith-patch/security/caitsith/permission.c (revision 364)
+++ trunk/caitsith-patch/security/caitsith/permission.c (revision 365)
@@ -278,6 +278,29 @@
278278
279279 /***** SECTION4: Standalone functions section *****/
280280
281+#if defined(RHEL_MAJOR) && RHEL_MAJOR == 8 && defined(RHEL_MINOR) && RHEL_MINOR >= 6
282+
283+/**
284+ * prepare_binprm - Read the first BINPRM_BUF_SIZE bytes.
285+ *
286+ * @bprm: Pointer to "struct linux_binprm".
287+ *
288+ * This is not the same with prepare_binprm() in fs/exec.c due to not exported
289+ * bprm_fill_uid()/security_bprm_repopulate_creds(). I guess that RHBZ#1993665
290+ * decided to accept a not-yet-upstreamed "exec: Control flow simplifications"
291+ * feature. But since this path is used by execute_handler, I assume that
292+ * suid/sgid is not set on programs called via this path.
293+ */
294+static int prepare_binprm(struct linux_binprm *bprm)
295+{
296+ loff_t pos = 0;
297+
298+ memset(bprm->buf, 0, BINPRM_BUF_SIZE);
299+ return kernel_read(bprm->file, bprm->buf, BINPRM_BUF_SIZE, &pos);
300+}
301+
302+#endif
303+
281304 #if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 8, 0)
282305
283306 /**
--- trunk/caitsith-patch/specs/build-c8-4.18.sh (revision 364)
+++ trunk/caitsith-patch/specs/build-c8-4.18.sh (revision 365)
@@ -1,6 +1,6 @@
11 #! /bin/sh
22 #
3-# This is a kernel build script for CentOS 8's 4.18 kernel.
3+# This is a kernel build script for CentOS Stream 8's 4.18 kernel.
44 #
55
66 die () {
@@ -10,12 +10,12 @@
1010
1111 cd /tmp/ || die "Can't chdir to /tmp/ ."
1212
13-if [ ! -r kernel-4.18.0-305.25.1.el8_4.src.rpm ]
13+if [ ! -r kernel-4.18.0-383.el8.src.rpm ]
1414 then
15- wget https://vault.centos.org/8.4.2105/BaseOS/Source/SPackages/kernel-4.18.0-305.25.1.el8_4.src.rpm || die "Can't download source package."
15+ wget https://vault.centos.org/centos/8-stream/BaseOS/Source/SPackages/kernel-4.18.0-383.el8.src.rpm || die "Can't download source package."
1616 fi
17-LANG=C rpm --checksig kernel-4.18.0-305.25.1.el8_4.src.rpm | grep -F ': digests signatures OK' || die "Can't verify signature."
18-rpm -ivh kernel-4.18.0-305.25.1.el8_4.src.rpm || die "Can't install source package."
17+LANG=C rpm --checksig kernel-4.18.0-383.el8.src.rpm | grep -F ': digests signatures OK' || die "Can't verify signature."
18+rpm -ivh kernel-4.18.0-383.el8.src.rpm || die "Can't install source package."
1919
2020 cd ~/rpmbuild/SOURCES/ || die "Can't chdir to ~/rpmbuild/SOURCES/ ."
2121 if [ ! -r caitsith-patch-0.2-20220222.tar.gz ]
@@ -36,8 +36,8 @@
3636 +%define buildid _caitsith_0.2.10
3737
3838 %define rpmversion 4.18.0
39- %define pkgrelease 305.25.1.el8_4
40-@@ -1097,6 +1097,10 @@
39+ %define pkgrelease 383.el8
40+@@ -1102,6 +1102,10 @@
4141
4242 # END OF PATCH APPLICATIONS
4343
@@ -48,19 +48,10 @@
4848 # Any further pre-build tree manipulations happen here.
4949
5050 %if %{with_realtime}
51-@@ -1228,6 +1232,18 @@
51+@@ -1233,6 +1237,9 @@
5252 cp %{SOURCE9} certs/.
5353 %endif
5454
55-+ # TOMOYO Linux 2.5
56-+ sed -i -e 's/# CONFIG_SECURITY_PATH is not set/CONFIG_SECURITY_PATH=y/' -- .config
57-+ sed -i -e 's/# CONFIG_SECURITY_TOMOYO is not set/CONFIG_SECURITY_TOMOYO=y/' -- .config
58-+ echo 'CONFIG_SECURITY_TOMOYO_MAX_ACCEPT_ENTRY=2048' >> .config
59-+ echo 'CONFIG_SECURITY_TOMOYO_MAX_AUDIT_LOG=1024' >> .config
60-+ echo '# CONFIG_SECURITY_TOMOYO_OMIT_USERSPACE_LOADER is not set' >> .config
61-+ echo 'CONFIG_SECURITY_TOMOYO_POLICY_LOADER="/sbin/tomoyo-init"' >> .config
62-+ echo 'CONFIG_SECURITY_TOMOYO_ACTIVATION_TRIGGER="/usr/lib/systemd/systemd"' >> .config
63-+ echo '# CONFIG_DEFAULT_SECURITY_TOMOYO is not set' >> .config
6455 + # CaitSith
6556 + sed -e 's@/sbin/init@/usr/lib/systemd/systemd@' -- config.caitsith >> .config
6657 +
Show on old repository browser