Re: [PATCH] MIPS: KASLR: Fix handling of NULL FDT
Hello. On 10/17/2016 01:04 PM, Matt Redfearn wrote: If platform code returns a NULL pointer to the FDT, initial_boot_params will not get set to a valid pointer and attempting to find the /chosen node in it will cause a NULL pointer dereference and the kernel to crash immediately on startup - with no output to the console. Fix this by checking that initial_boot_params is valid before using it. Fixes: 405bc8fd12f5 ("MIPS: Kernel: Implement KASLR using CONFIG_RELOCATABLE") Cc:# 4.7+ Signed-off-by: Matt Redfearn --- arch/mips/kernel/relocate.c | 1 + 1 file changed, 1 insertion(+) diff --git a/arch/mips/kernel/relocate.c b/arch/mips/kernel/relocate.c index ca1cc30c0891..8810183840ca 100644 --- a/arch/mips/kernel/relocate.c +++ b/arch/mips/kernel/relocate.c @@ -200,6 +200,7 @@ static inline __init unsigned long get_random_boot(void) #if defined(CONFIG_USE_OF) /* Get any additional entropy passed in device tree */ + if (initial_boot_params) { CodingStyle: *if* and { should be on the same line. [...] MBR, Sergei
Re: [PATCH] MIPS: KASLR: Fix handling of NULL FDT
Hello. On 10/17/2016 01:04 PM, Matt Redfearn wrote: If platform code returns a NULL pointer to the FDT, initial_boot_params will not get set to a valid pointer and attempting to find the /chosen node in it will cause a NULL pointer dereference and the kernel to crash immediately on startup - with no output to the console. Fix this by checking that initial_boot_params is valid before using it. Fixes: 405bc8fd12f5 ("MIPS: Kernel: Implement KASLR using CONFIG_RELOCATABLE") Cc: # 4.7+ Signed-off-by: Matt Redfearn --- arch/mips/kernel/relocate.c | 1 + 1 file changed, 1 insertion(+) diff --git a/arch/mips/kernel/relocate.c b/arch/mips/kernel/relocate.c index ca1cc30c0891..8810183840ca 100644 --- a/arch/mips/kernel/relocate.c +++ b/arch/mips/kernel/relocate.c @@ -200,6 +200,7 @@ static inline __init unsigned long get_random_boot(void) #if defined(CONFIG_USE_OF) /* Get any additional entropy passed in device tree */ + if (initial_boot_params) { CodingStyle: *if* and { should be on the same line. [...] MBR, Sergei
Re: [PATCH] MIPS: KASLR: Fix handling of NULL FDT
Hi Matt, On Mon, Oct 17, 2016 at 11:04:54AM +0100, Matt Redfearn wrote: > If platform code returns a NULL pointer to the FDT, initial_boot_params > will not get set to a valid pointer and attempting to find the /chosen > node in it will cause a NULL pointer dereference and the kernel to crash > immediately on startup - with no output to the console. > > Fix this by checking that initial_boot_params is valid before using it. > > Fixes: 405bc8fd12f5 ("MIPS: Kernel: Implement KASLR using CONFIG_RELOCATABLE") > Cc:# 4.7+ > Signed-off-by: Matt Redfearn > --- > > arch/mips/kernel/relocate.c | 1 + > 1 file changed, 1 insertion(+) > > diff --git a/arch/mips/kernel/relocate.c b/arch/mips/kernel/relocate.c > index ca1cc30c0891..8810183840ca 100644 > --- a/arch/mips/kernel/relocate.c > +++ b/arch/mips/kernel/relocate.c > @@ -200,6 +200,7 @@ static inline __init unsigned long get_random_boot(void) > > #if defined(CONFIG_USE_OF) > /* Get any additional entropy passed in device tree */ > + if (initial_boot_params) > { The open brace should be on the same line as the if really. Cheers James > int node, len; > u64 *prop; > -- > 2.7.4 > > signature.asc Description: Digital signature
Re: [PATCH] MIPS: KASLR: Fix handling of NULL FDT
Hi Matt, On Mon, Oct 17, 2016 at 11:04:54AM +0100, Matt Redfearn wrote: > If platform code returns a NULL pointer to the FDT, initial_boot_params > will not get set to a valid pointer and attempting to find the /chosen > node in it will cause a NULL pointer dereference and the kernel to crash > immediately on startup - with no output to the console. > > Fix this by checking that initial_boot_params is valid before using it. > > Fixes: 405bc8fd12f5 ("MIPS: Kernel: Implement KASLR using CONFIG_RELOCATABLE") > Cc: # 4.7+ > Signed-off-by: Matt Redfearn > --- > > arch/mips/kernel/relocate.c | 1 + > 1 file changed, 1 insertion(+) > > diff --git a/arch/mips/kernel/relocate.c b/arch/mips/kernel/relocate.c > index ca1cc30c0891..8810183840ca 100644 > --- a/arch/mips/kernel/relocate.c > +++ b/arch/mips/kernel/relocate.c > @@ -200,6 +200,7 @@ static inline __init unsigned long get_random_boot(void) > > #if defined(CONFIG_USE_OF) > /* Get any additional entropy passed in device tree */ > + if (initial_boot_params) > { The open brace should be on the same line as the if really. Cheers James > int node, len; > u64 *prop; > -- > 2.7.4 > > signature.asc Description: Digital signature
[PATCH] MIPS: KASLR: Fix handling of NULL FDT
If platform code returns a NULL pointer to the FDT, initial_boot_params will not get set to a valid pointer and attempting to find the /chosen node in it will cause a NULL pointer dereference and the kernel to crash immediately on startup - with no output to the console. Fix this by checking that initial_boot_params is valid before using it. Fixes: 405bc8fd12f5 ("MIPS: Kernel: Implement KASLR using CONFIG_RELOCATABLE") Cc:# 4.7+ Signed-off-by: Matt Redfearn --- arch/mips/kernel/relocate.c | 1 + 1 file changed, 1 insertion(+) diff --git a/arch/mips/kernel/relocate.c b/arch/mips/kernel/relocate.c index ca1cc30c0891..8810183840ca 100644 --- a/arch/mips/kernel/relocate.c +++ b/arch/mips/kernel/relocate.c @@ -200,6 +200,7 @@ static inline __init unsigned long get_random_boot(void) #if defined(CONFIG_USE_OF) /* Get any additional entropy passed in device tree */ + if (initial_boot_params) { int node, len; u64 *prop; -- 2.7.4
[PATCH] MIPS: KASLR: Fix handling of NULL FDT
If platform code returns a NULL pointer to the FDT, initial_boot_params will not get set to a valid pointer and attempting to find the /chosen node in it will cause a NULL pointer dereference and the kernel to crash immediately on startup - with no output to the console. Fix this by checking that initial_boot_params is valid before using it. Fixes: 405bc8fd12f5 ("MIPS: Kernel: Implement KASLR using CONFIG_RELOCATABLE") Cc: # 4.7+ Signed-off-by: Matt Redfearn --- arch/mips/kernel/relocate.c | 1 + 1 file changed, 1 insertion(+) diff --git a/arch/mips/kernel/relocate.c b/arch/mips/kernel/relocate.c index ca1cc30c0891..8810183840ca 100644 --- a/arch/mips/kernel/relocate.c +++ b/arch/mips/kernel/relocate.c @@ -200,6 +200,7 @@ static inline __init unsigned long get_random_boot(void) #if defined(CONFIG_USE_OF) /* Get any additional entropy passed in device tree */ + if (initial_boot_params) { int node, len; u64 *prop; -- 2.7.4