[PATCH v2 15/19] malloc: implement free_sensitive()

Ahmad Fatoum a.fatoum at pengutronix.de
Mon Aug 5 03:17:45 PDT 2024


Hello Sascha,

On 01.08.24 07:57, Sascha Hauer wrote:
> barebox sometimes stores sensitive data in memory. Add a
> (k)free_sensitive() function which zeroes out the memory before freeing it.

Could you export a malloc_usable_size() from the allocators and use that to
implement free_sensitive?

> Signed-off-by: Sascha Hauer <s.hauer at pengutronix.de>

> +void free_sensitive(void *mem)
> +{
> +	mchunkptr p;
> +	size_t size;
> +
> +	if (!mem)
> +		return;
> +
> +	p = mem2chunk(mem);
> +	size = chunksize(p);
> +	if (size)
> +		memset(mem, size, 0x0);

buffer size is the last argument, so this is a no-op. Please implement a
memzero_explicit operation like Linux does and use it here as that
doesn't risk confusion the last two parameters.

> +void free_sensitive(void *mem)
> +{
> +	size_t size;
> +
> +	size = tlsf_block_size(mem);
> +	if (size)
> +		memset(mem, size, 0x0);

Same issue.

Cheers,
Ahmad

-- 
Pengutronix e.K.                           |                             |
Steuerwalder Str. 21                       | http://www.pengutronix.de/  |
31137 Hildesheim, Germany                  | Phone: +49-5121-206917-0    |
Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555 |




More information about the barebox mailing list