summaryrefslogtreecommitdiff
path: root/sys-kernel/linux-image-redcore-lts/files
diff options
context:
space:
mode:
Diffstat (limited to 'sys-kernel/linux-image-redcore-lts/files')
-rw-r--r--sys-kernel/linux-image-redcore-lts/files/4.14-linux-hardened.patch32
-rw-r--r--sys-kernel/linux-image-redcore-lts/files/4.19-linux-hardened.patch61
2 files changed, 42 insertions, 51 deletions
diff --git a/sys-kernel/linux-image-redcore-lts/files/4.14-linux-hardened.patch b/sys-kernel/linux-image-redcore-lts/files/4.14-linux-hardened.patch
index 126e3f00..9280791e 100644
--- a/sys-kernel/linux-image-redcore-lts/files/4.14-linux-hardened.patch
+++ b/sys-kernel/linux-image-redcore-lts/files/4.14-linux-hardened.patch
@@ -71,7 +71,7 @@ index 694968c7523c..002d86416ef8 100644
The value in this file affects behavior of handling NMI. When the
diff --git a/Makefile b/Makefile
-index 86fa9a371383..f7a041b5e9c7 100644
+index 70cc37cb3e99..edc3de99b3cd 100644
--- a/Makefile
+++ b/Makefile
@@ -714,6 +714,9 @@ endif
@@ -279,7 +279,7 @@ index e32fc1f274d8..d08acc76502a 100644
CONFIG_BSD_PROCESS_ACCT=y
CONFIG_TASKSTATS=y
diff --git a/arch/x86/entry/vdso/vma.c b/arch/x86/entry/vdso/vma.c
-index a77fd3c8d824..3a8f35c85ecf 100644
+index 1911310959f8..bba8dbbc07a8 100644
--- a/arch/x86/entry/vdso/vma.c
+++ b/arch/x86/entry/vdso/vma.c
@@ -203,55 +203,9 @@ static int map_vdso(const struct vdso_image *image, unsigned long addr)
@@ -779,7 +779,7 @@ index b811442c5ce6..4f62a63cbcb1 100644
A pseudo terminal (PTY) is a software device consisting of two
halves: a master and a slave. The slave device behaves identical to
diff --git a/drivers/tty/tty_io.c b/drivers/tty/tty_io.c
-index 7e351d205393..426e22697412 100644
+index 417b81c67fe9..4e9bb7851ab1 100644
--- a/drivers/tty/tty_io.c
+++ b/drivers/tty/tty_io.c
@@ -171,6 +171,7 @@ static void free_tty_struct(struct tty_struct *tty)
@@ -810,7 +810,7 @@ index 7e351d205393..426e22697412 100644
if ((current->signal->tty != tty) && !capable(CAP_SYS_ADMIN))
return -EPERM;
if (get_user(ch, p))
-@@ -2855,6 +2864,7 @@ struct tty_struct *alloc_tty_struct(struct tty_driver *driver, int idx)
+@@ -2854,6 +2863,7 @@ struct tty_struct *alloc_tty_struct(struct tty_driver *driver, int idx)
tty->index = idx;
tty_line_name(driver, idx, tty->name);
tty->dev = tty_get_device(tty);
@@ -819,7 +819,7 @@ index 7e351d205393..426e22697412 100644
return tty;
}
diff --git a/drivers/usb/core/hub.c b/drivers/usb/core/hub.c
-index 4a4e666a8e09..8ee7835decc6 100644
+index a073cb5be013..e9dfece7b7ce 100644
--- a/drivers/usb/core/hub.c
+++ b/drivers/usb/core/hub.c
@@ -38,6 +38,8 @@
@@ -831,7 +831,7 @@ index 4a4e666a8e09..8ee7835decc6 100644
/* Protect struct usb_device->state and ->children members
* Note: Both are also protected by ->dev.sem, except that ->state can
* change to USB_STATE_NOTATTACHED even when the semaphore isn't held. */
-@@ -4828,6 +4830,12 @@ static void hub_port_connect(struct usb_hub *hub, int port1, u16 portstatus,
+@@ -4818,6 +4820,12 @@ static void hub_port_connect(struct usb_hub *hub, int port1, u16 portstatus,
goto done;
return;
}
@@ -1672,10 +1672,10 @@ index 710ce1d6b982..4013b634e820 100644
struct rcu_state *rsp;
diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c
-index 4d54c1fe9623..92612d51d6e1 100644
+index f33b24080b1c..99c5e423906f 100644
--- a/kernel/sched/fair.c
+++ b/kernel/sched/fair.c
-@@ -8983,7 +8983,7 @@ static void nohz_idle_balance(struct rq *this_rq, enum cpu_idle_type idle) { }
+@@ -8982,7 +8982,7 @@ static void nohz_idle_balance(struct rq *this_rq, enum cpu_idle_type idle) { }
* run_rebalance_domains is triggered when needed from the scheduler tick.
* Also triggered for nohz idle balancing (with nohz_balancing_kick set).
*/
@@ -1734,7 +1734,7 @@ index a4c87cf27f9d..efb97a8dc568 100644
struct tasklet_struct *list;
diff --git a/kernel/sysctl.c b/kernel/sysctl.c
-index 3ad00bf90b3d..35c7d3336f87 100644
+index d330b1ce3b94..050278b12928 100644
--- a/kernel/sysctl.c
+++ b/kernel/sysctl.c
@@ -66,6 +66,7 @@
@@ -2547,7 +2547,7 @@ index a77d68f2c1b6..d1f1d75f4d1f 100644
}
diff --git a/net/core/dev.c b/net/core/dev.c
-index 54ba5b5bc55c..564f21fc2df5 100644
+index 4337450a5fdb..5a3c7d217719 100644
--- a/net/core/dev.c
+++ b/net/core/dev.c
@@ -4117,7 +4117,7 @@ int netif_rx_ni(struct sk_buff *skb)
@@ -2581,7 +2581,7 @@ index f48fe6fc7e8c..d78c52835c08 100644
Normal TCP/IP networking is open to an attack known as "SYN
flooding". This denial-of-service attack prevents legitimate remote
diff --git a/scripts/mod/modpost.c b/scripts/mod/modpost.c
-index e36a673833ae..03914dfa0bd0 100644
+index 18bc8738e989..d2866f6dd736 100644
--- a/scripts/mod/modpost.c
+++ b/scripts/mod/modpost.c
@@ -37,6 +37,7 @@ static int vmlinux_section_warnings = 1;
@@ -2613,9 +2613,9 @@ index e36a673833ae..03914dfa0bd0 100644
}
};
-@@ -1266,10 +1274,10 @@ static Elf_Sym *find_elf_symbol(struct elf_info *elf, Elf64_Sword addr,
+@@ -1240,10 +1248,10 @@ static Elf_Sym *find_elf_symbol(struct elf_info *elf, Elf64_Sword addr,
continue;
- if (!is_valid_name(elf, sym))
+ if (ELF_ST_TYPE(sym->st_info) == STT_SECTION)
continue;
- if (sym->st_value == addr)
- return sym;
@@ -2626,7 +2626,7 @@ index e36a673833ae..03914dfa0bd0 100644
if (d < 0)
d = addr - sym->st_value;
if (d < distance) {
-@@ -1404,7 +1412,11 @@ static void report_sec_mismatch(const char *modname,
+@@ -1402,7 +1410,11 @@ static void report_sec_mismatch(const char *modname,
char *prl_from;
char *prl_to;
@@ -2639,7 +2639,7 @@ index e36a673833ae..03914dfa0bd0 100644
if (!sec_mismatch_verbose)
return;
-@@ -1528,6 +1540,14 @@ static void report_sec_mismatch(const char *modname,
+@@ -1526,6 +1538,14 @@ static void report_sec_mismatch(const char *modname,
fatal("There's a special handler for this mismatch type, "
"we should never get here.");
break;
@@ -2654,7 +2654,7 @@ index e36a673833ae..03914dfa0bd0 100644
}
fprintf(stderr, "\n");
}
-@@ -2541,6 +2561,14 @@ int main(int argc, char **argv)
+@@ -2539,6 +2559,14 @@ int main(int argc, char **argv)
}
}
free(buf.p);
diff --git a/sys-kernel/linux-image-redcore-lts/files/4.19-linux-hardened.patch b/sys-kernel/linux-image-redcore-lts/files/4.19-linux-hardened.patch
index 4608c3bc..42ba2084 100644
--- a/sys-kernel/linux-image-redcore-lts/files/4.19-linux-hardened.patch
+++ b/sys-kernel/linux-image-redcore-lts/files/4.19-linux-hardened.patch
@@ -71,7 +71,7 @@ index 37a679501ddc..59b747920f4d 100644
The value in this file affects behavior of handling NMI. When the
diff --git a/Makefile b/Makefile
-index 2caa131ff306..42e5022af1d7 100644
+index f1859811dca1..432040e2d299 100644
--- a/Makefile
+++ b/Makefile
@@ -698,6 +698,9 @@ stackp-flags-$(CONFIG_STACKPROTECTOR_STRONG) := -fstack-protector-strong
@@ -567,10 +567,10 @@ index 15c1f5e12eb8..ff72cccec5b8 100644
struct list_head *cpu_list, local_list;
diff --git a/drivers/ata/libata-core.c b/drivers/ata/libata-core.c
-index adf28788cab5..cd4b3501eda9 100644
+index b8c3f9e6af89..bf65bc091cb6 100644
--- a/drivers/ata/libata-core.c
+++ b/drivers/ata/libata-core.c
-@@ -5158,7 +5158,7 @@ void ata_qc_free(struct ata_queued_cmd *qc)
+@@ -5157,7 +5157,7 @@ void ata_qc_free(struct ata_queued_cmd *qc)
struct ata_port *ap;
unsigned int tag;
@@ -579,7 +579,7 @@ index adf28788cab5..cd4b3501eda9 100644
ap = qc->ap;
qc->flags = 0;
-@@ -5175,7 +5175,7 @@ void __ata_qc_complete(struct ata_queued_cmd *qc)
+@@ -5174,7 +5174,7 @@ void __ata_qc_complete(struct ata_queued_cmd *qc)
struct ata_port *ap;
struct ata_link *link;
@@ -661,7 +661,7 @@ index e7d192ebecd7..1c682abd31ca 100644
return tty;
}
diff --git a/drivers/usb/core/hub.c b/drivers/usb/core/hub.c
-index 3adff4da2ee1..5416294d2bc9 100644
+index cc62707c0251..21d78ae4b4ae 100644
--- a/drivers/usb/core/hub.c
+++ b/drivers/usb/core/hub.c
@@ -41,6 +41,8 @@
@@ -673,7 +673,7 @@ index 3adff4da2ee1..5416294d2bc9 100644
/* Protect struct usb_device->state and ->children members
* Note: Both are also protected by ->dev.sem, except that ->state can
* change to USB_STATE_NOTATTACHED even when the semaphore isn't held. */
-@@ -4943,6 +4945,12 @@ static void hub_port_connect(struct usb_hub *hub, int port1, u16 portstatus,
+@@ -4933,6 +4935,12 @@ static void hub_port_connect(struct usb_hub *hub, int port1, u16 portstatus,
goto done;
return;
}
@@ -687,7 +687,7 @@ index 3adff4da2ee1..5416294d2bc9 100644
unit_load = 150;
else
diff --git a/fs/exec.c b/fs/exec.c
-index 1ebf6e5a521d..f86201f25a4c 100644
+index 1ebf6e5a521d..73b8d839927c 100644
--- a/fs/exec.c
+++ b/fs/exec.c
@@ -62,6 +62,7 @@
@@ -707,15 +707,6 @@ index 1ebf6e5a521d..f86201f25a4c 100644
return 0;
err:
up_write(&mm->mmap_sem);
-@@ -929,7 +932,7 @@ int kernel_read_file(struct file *file, void **buf, loff_t *size,
- bytes = kernel_read(file, *buf + pos, i_size - pos, &pos);
- if (bytes < 0) {
- ret = bytes;
-- goto out;
-+ goto out_free;
- }
-
- if (bytes == 0)
diff --git a/fs/namei.c b/fs/namei.c
index 914178cdbe94..7422b5ce077a 100644
--- a/fs/namei.c
@@ -981,10 +972,10 @@ index 70b7123f38c7..09f3019489b2 100644
extern phys_addr_t per_cpu_ptr_to_phys(void *addr);
diff --git a/include/linux/perf_event.h b/include/linux/perf_event.h
-index c2876e740514..45673e9e1770 100644
+index 53c500f0ca79..15c236b8aba3 100644
--- a/include/linux/perf_event.h
+++ b/include/linux/perf_event.h
-@@ -1184,6 +1184,11 @@ extern int perf_cpu_time_max_percent_handler(struct ctl_table *table, int write,
+@@ -1179,6 +1179,11 @@ extern int perf_cpu_time_max_percent_handler(struct ctl_table *table, int write,
int perf_event_max_stack_handler(struct ctl_table *table, int write,
void __user *buffer, size_t *lenp, loff_t *ppos);
@@ -1394,7 +1385,7 @@ index 1e1c0236f55b..452062fe45ce 100644
/**
diff --git a/kernel/events/core.c b/kernel/events/core.c
-index 4fb9d5054618..ec52d87916ef 100644
+index 5a97f34bc14c..a4a4fc1e1586 100644
--- a/kernel/events/core.c
+++ b/kernel/events/core.c
@@ -397,8 +397,13 @@ static cpumask_var_t perf_online_mask;
@@ -1411,7 +1402,7 @@ index 4fb9d5054618..ec52d87916ef 100644
/* Minimum for 512 kiB + 1 user control page */
int sysctl_perf_event_mlock __read_mostly = 512 + (PAGE_SIZE / 1024); /* 'free' kiB per user */
-@@ -10426,6 +10431,9 @@ SYSCALL_DEFINE5(perf_event_open,
+@@ -10410,6 +10415,9 @@ SYSCALL_DEFINE5(perf_event_open,
if (flags & ~PERF_FLAG_ALL)
return -EINVAL;
@@ -1510,10 +1501,10 @@ index 15301ed19da6..2a799dea7016 100644
struct rcu_state *rsp;
diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c
-index f7c375d1e601..6c5f522385fc 100644
+index 7137bc343b4a..104e0855a018 100644
--- a/kernel/sched/fair.c
+++ b/kernel/sched/fair.c
-@@ -9594,7 +9594,7 @@ static int idle_balance(struct rq *this_rq, struct rq_flags *rf)
+@@ -9593,7 +9593,7 @@ static int idle_balance(struct rq *this_rq, struct rq_flags *rf)
* run_rebalance_domains is triggered when needed from the scheduler tick.
* Also triggered for nohz idle balancing (with nohz_balancing_kick set).
*/
@@ -1583,7 +1574,7 @@ index 6f584861d329..1943fe60f3b9 100644
void tasklet_init(struct tasklet_struct *t,
diff --git a/kernel/sysctl.c b/kernel/sysctl.c
-index 32dea29d05a0..391876c1ca97 100644
+index cc02050fd0c4..cca161854186 100644
--- a/kernel/sysctl.c
+++ b/kernel/sysctl.c
@@ -67,6 +67,7 @@
@@ -1931,7 +1922,7 @@ index f7cd9cb966c0..fda49841f4f2 100644
goto set_brk;
diff --git a/mm/page_alloc.c b/mm/page_alloc.c
-index a9de1dbb9a6c..da3b27a09065 100644
+index 9e45553cabd6..f5ec01e1498c 100644
--- a/mm/page_alloc.c
+++ b/mm/page_alloc.c
@@ -66,6 +66,7 @@
@@ -1958,7 +1949,7 @@ index a9de1dbb9a6c..da3b27a09065 100644
#ifdef CONFIG_GCC_PLUGIN_LATENT_ENTROPY
volatile unsigned long latent_entropy __latent_entropy;
EXPORT_SYMBOL(latent_entropy);
-@@ -1055,6 +1065,13 @@ static __always_inline bool free_pages_prepare(struct page *page,
+@@ -1027,6 +1037,13 @@ static __always_inline bool free_pages_prepare(struct page *page,
debug_check_no_obj_freed(page_address(page),
PAGE_SIZE << order);
}
@@ -1972,7 +1963,7 @@ index a9de1dbb9a6c..da3b27a09065 100644
arch_free_page(page, order);
kernel_poison_pages(page, 1 << order, 0);
kernel_map_pages(page, 1 << order, 0);
-@@ -1295,6 +1312,21 @@ static void __init __free_pages_boot_core(struct page *page, unsigned int order)
+@@ -1267,6 +1284,21 @@ static void __init __free_pages_boot_core(struct page *page, unsigned int order)
__ClearPageReserved(p);
set_page_count(p, 0);
@@ -1994,7 +1985,7 @@ index a9de1dbb9a6c..da3b27a09065 100644
page_zone(page)->managed_pages += nr_pages;
set_page_refcounted(page);
__free_pages(page, order);
-@@ -1876,8 +1908,8 @@ static inline int check_new_page(struct page *page)
+@@ -1855,8 +1887,8 @@ static inline int check_new_page(struct page *page)
static inline bool free_pages_prezeroed(void)
{
@@ -2005,7 +1996,7 @@ index a9de1dbb9a6c..da3b27a09065 100644
}
#ifdef CONFIG_DEBUG_VM
-@@ -1934,6 +1966,11 @@ static void prep_new_page(struct page *page, unsigned int order, gfp_t gfp_flags
+@@ -1913,6 +1945,11 @@ static void prep_new_page(struct page *page, unsigned int order, gfp_t gfp_flags
post_alloc_hook(page, order, gfp_flags);
@@ -2394,7 +2385,7 @@ index 26fc9b5f1b6c..7c9312ca8982 100644
}
diff --git a/net/core/dev.c b/net/core/dev.c
-index 5c8c0a572ee9..875f2cea68e9 100644
+index af097ca9cb4f..fda1753e5b65 100644
--- a/net/core/dev.c
+++ b/net/core/dev.c
@@ -4519,7 +4519,7 @@ int netif_rx_ni(struct sk_buff *skb)
@@ -2444,7 +2435,7 @@ index cb0c889e13aa..305f52f58c1a 100644
secure!
diff --git a/scripts/mod/modpost.c b/scripts/mod/modpost.c
-index 5a77efd39b3f..e771cb100e66 100644
+index 5a5b3780456f..01eac2c6e7eb 100644
--- a/scripts/mod/modpost.c
+++ b/scripts/mod/modpost.c
@@ -35,6 +35,7 @@ static int vmlinux_section_warnings = 1;
@@ -2476,9 +2467,9 @@ index 5a77efd39b3f..e771cb100e66 100644
}
};
-@@ -1255,10 +1263,10 @@ static Elf_Sym *find_elf_symbol(struct elf_info *elf, Elf64_Sword addr,
+@@ -1229,10 +1237,10 @@ static Elf_Sym *find_elf_symbol(struct elf_info *elf, Elf64_Sword addr,
continue;
- if (!is_valid_name(elf, sym))
+ if (ELF_ST_TYPE(sym->st_info) == STT_SECTION)
continue;
- if (sym->st_value == addr)
- return sym;
@@ -2489,7 +2480,7 @@ index 5a77efd39b3f..e771cb100e66 100644
if (d < 0)
d = addr - sym->st_value;
if (d < distance) {
-@@ -1393,7 +1401,11 @@ static void report_sec_mismatch(const char *modname,
+@@ -1391,7 +1399,11 @@ static void report_sec_mismatch(const char *modname,
char *prl_from;
char *prl_to;
@@ -2502,7 +2493,7 @@ index 5a77efd39b3f..e771cb100e66 100644
if (!sec_mismatch_verbose)
return;
-@@ -1517,6 +1529,14 @@ static void report_sec_mismatch(const char *modname,
+@@ -1515,6 +1527,14 @@ static void report_sec_mismatch(const char *modname,
fatal("There's a special handler for this mismatch type, "
"we should never get here.");
break;
@@ -2517,7 +2508,7 @@ index 5a77efd39b3f..e771cb100e66 100644
}
fprintf(stderr, "\n");
}
-@@ -2528,6 +2548,14 @@ int main(int argc, char **argv)
+@@ -2526,6 +2546,14 @@ int main(int argc, char **argv)
}
}
free(buf.p);