[PATCH] sandbox: add memory leak debugging tooling around LeakSanitizer

Ahmad Fatoum a.fatoum at pengutronix.de
Tue Oct 28 00:59:05 PDT 2025


Hi Sascha,

On 10/28/25 8:57 AM, Sascha Hauer wrote:
> On Mon, Oct 27, 2025 at 08:44:45AM +0100, Ahmad Fatoum wrote:
>> When enabled, this allows calling barebox_memleak_check() or running the
>> checkleak command to instruct LeakSanitizer to sweep the memory and find
>> unreferenced allocations.
>>
>> LeakSanitizier is also enabled along AddressSanitizer and runs on AMD64
>> Linux automatically on exit already.
>>
>> +static int do_checkleak(int argc, char *argv[])
>> +{
>> +	unsigned int count;
>> +	int opt;
>> +
>> +	while((opt = getopt(argc, argv, "l:")) > 0) {
>> +		switch(opt) {
>> +		case 'l':
>> +			if (kstrtouint(optarg, 0, &count))
>> +				return COMMAND_ERROR;
>> +			(void)malloc(count);
>> +			break;
>> +		default:
>> +			return COMMAND_ERROR_USAGE;
>> +		}
>> +	}
>> +
>> +	argv += optind;
>> +	argc -= optind;
>> +
>> +	if (argc)
>> +		return COMMAND_ERROR_USAGE;
>> +
>> +	memleak_check();
> 
> barebox exits in this call. Is this intended?

Until I figure out how to suppress it, yes, unfortunately. Haven't dug
into the source code yet.

On the bright side my talloc series removes the long standing leak in
hush, so it's less of a bother. :D

Cheers,
Ahmad

> 
> Sascha
> 

-- 
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