lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <732dedee-c7c5-4226-ad87-f4c2311b11b3@kernel.org>
Date: Tue, 17 Jun 2025 11:47:42 +0200
From: Daniel Gomez <da.gomez@...nel.org>
To: Petr Pavlu <petr.pavlu@...e.com>
Cc: Luis Chamberlain <mcgrof@...nel.org>,
 Sami Tolvanen <samitolvanen@...gle.com>, Daniel Gomez
 <da.gomez@...sung.com>, linux-modules@...r.kernel.org,
 linux-kernel@...r.kernel.org
Subject: Re: [PATCH 1/2] module: Fix memory deallocation on error path in
 move_module()

> Do you mean the following, or something else:
> 
> static int move_module(struct module *mod, struct load_info *info)
> {
> 	int i;
> 	enum mod_mem_type t = MOD_MEM_NUM_TYPES;
> 	int ret;
> 	bool codetag_section_found = false;
> 
> 	for_each_mod_mem_type(type) {
> 		if (!mod->mem[type].size) {
> 			mod->mem[type].base = NULL;
> 			continue;
> 		}
> 
> 		ret = module_memory_alloc(mod, type);
> 		if (ret) {
> 			t = type;
> 			goto out_err;
> 		}
> 	}
> 
> 	[...]
> }
> 

Yes, that's it. From your patch, moving MOD_MEM_NUM_TYPE assigment to the
initialization and use the while() loop suggested later on.

One thing though, we are "releasing" the memory even if we have skipped the
allocation in the first place. So, I think it would make sense to release only
for the types we have actually allocated. What do you think?

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ