ANDROID: revert some RNG function signature changes

v4.19.249 changed the len argument of get_random_bytes() from int to
size_t, and the buf argument of add_hwgenerator_randomness() from
'const char *' to 'const void *'.  As these functions are part of the
GKI ABI that must be preserved, restore the old signatures.
get_random_bytes() should never be called with a length greater than
INT_MAX anyway, so it's fine to keep the old signature.

Bug: 161946584
Fixes: 08b7063879 ("random: use hash function for crng_slow_load()")
Change-Id: I0749bf3596eae9732e1ae2a8264ad0ca542dd3a3
Signed-off-by: Eric Biggers <ebiggers@google.com>
This commit is contained in:
Eric Biggers 2022-07-07 01:26:55 +00:00 committed by Greg Kroah-Hartman
parent 723971138e
commit d3c91d901f
2 changed files with 4 additions and 4 deletions

View File

@ -432,7 +432,7 @@ static void _get_random_bytes(void *buf, size_t len)
* wait_for_random_bytes() should be called and return 0 at least once
* at any point prior.
*/
void get_random_bytes(void *buf, size_t len)
void get_random_bytes(void *buf, int len)
{
warn_unseeded_randomness();
_get_random_bytes(buf, len);
@ -864,7 +864,7 @@ EXPORT_SYMBOL(add_device_randomness);
* Those devices may produce endless random bits and will be throttled
* when our pool is full.
*/
void add_hwgenerator_randomness(const void *buf, size_t len, size_t entropy)
void add_hwgenerator_randomness(const char *buf, size_t len, size_t entropy)
{
mix_pool_bytes(buf, len);
credit_init_bits(entropy);

View File

@ -17,7 +17,7 @@ void __init add_bootloader_randomness(const void *buf, size_t len);
void add_input_randomness(unsigned int type, unsigned int code,
unsigned int value) __latent_entropy;
void add_interrupt_randomness(int irq) __latent_entropy;
void add_hwgenerator_randomness(const void *buf, size_t len, size_t entropy);
void add_hwgenerator_randomness(const char *buf, size_t len, size_t entropy);
#if defined(LATENT_ENTROPY_PLUGIN) && !defined(__CHECKER__)
static inline void add_latent_entropy(void)
@ -28,7 +28,7 @@ static inline void add_latent_entropy(void)
static inline void add_latent_entropy(void) { }
#endif
void get_random_bytes(void *buf, size_t len);
void get_random_bytes(void *buf, int len);
size_t __must_check get_random_bytes_arch(void *buf, size_t len);
u32 get_random_u32(void);
u64 get_random_u64(void);