2017-06-02 13:36:49

by Emmanuel Florac

[permalink] [raw]
Subject: Kernel 3.18.55 compilation fails (missing function declaration)

Hi, kernel 3.18.55 compilation fails with this error:

kernel/fork.c: In function ‘dup_task_struct’:
kernel/fork.c:341:2: error: implicit declaration of function
‘get_random_long’ [-Werror=implicit-function-declaration]
tsk->stack_canary = get_random_long();

Corrected by adding the declaration to include/linux/random.h line 26 :

unsigned long get_random_long(void);

Sorry, I really can't understand how to generate a patch from a tagged
release, my git-fu is far too low...

--
------------------------------------------------------------------------
Emmanuel Florac | Direction technique
| Intellique
| <[email protected]>
| +33 1 78 94 84 02
------------------------------------------------------------------------


Attachments:
(No filename) (181.00 B)
Signature digitale OpenPGP

2017-06-08 22:10:57

by Randy Dunlap

[permalink] [raw]
Subject: Re: Kernel 3.18.55 compilation fails (missing function declaration)

On 06/02/17 06:30, Emmanuel Florac wrote:
> Hi, kernel 3.18.55 compilation fails with this error:
>
> kernel/fork.c: In function ‘dup_task_struct’:
> kernel/fork.c:341:2: error: implicit declaration of function
> ‘get_random_long’ [-Werror=implicit-function-declaration]
> tsk->stack_canary = get_random_long();
>
> Corrected by adding the declaration to include/linux/random.h line 26 :
>
> unsigned long get_random_long(void);
>
> Sorry, I really can't understand how to generate a patch from a tagged
> release, my git-fu is far too low...
>

Should be fixed in 3.18.56 by this commit:


commit 2bc281ebacf969770597fad415547016f0457b53
Author: Greg Kroah-Hartman <[email protected]>
Date: Sat May 27 12:09:37 2017 +0200

Revert "stackprotector: Increase the per-task stack canary's random range from 32 bits to 64 bits on 64-bit platforms"

This reverts commit 609a3e81550b0b4ea87197b0f59455a7bcff975a which is
commit 5ea30e4e58040cfd6434c2f33dc3ea76e2c15b05 upstream.

It shouldn't have been backported to 3.18, as we do not have
get_random_long() in that kernel tree.


--
~Randy