[PATCH] sandbox: add memory leak debugging tooling around LeakSanitizer
Sascha Hauer
s.hauer at pengutronix.de
Tue Oct 28 01:15:32 PDT 2025
On Tue, Oct 28, 2025 at 08:59:05AM +0100, Ahmad Fatoum wrote:
> 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.
Until this is fixed we might want to adjust this text to reality:
BAREBOX_CMD_HELP_TEXT("list memory leaks encountered since the last time")
BAREBOX_CMD_HELP_TEXT("the command ran.")
>
> On the bright side my talloc series removes the long standing leak in
> hush, so it's less of a bother. :D
Indeed, it's useful as is, but let's mention the issue somewhere.
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