crypto: iaa - Fix potential use after free bug
BugLink: https://bugs.launchpad.net/bugs/2089340
[ Upstream commit e0d3b845a1b10b7b5abdad7ecc69d45b2aab3209 ]
The free_device_compression_mode(iaa_device, device_mode) function frees
"device_mode" but it iss passed to iaa_compression_modes[i]->free() a few
lines later resulting in a use after free.
The good news is that, so far as I can tell, nothing implements the
->free() function and the use after free happens in dead code. But, with
this fix, when something does implement it, we'll be ready. :)
Fixes: b190447e0f ("crypto: iaa - Add compression mode management along with fixed mode")
Signed-off-by: Dan Carpenter <dan.carpenter@linaro.org>
Reviewed-by: Tom Zanussi <tom.zanussi@linux.intel.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: Sasha Levin <sashal@kernel.org>
Signed-off-by: Portia Stephens <portia.stephens@canonical.com>
Signed-off-by: Stefan Bader <stefan.bader@canonical.com>
This commit is contained in:
committed by
Mehmet Basaran
parent
af63eb3f0d
commit
fce2b4738e
@@ -599,10 +599,10 @@ static void remove_device_compression_modes(struct iaa_device *iaa_device)
|
||||
if (!device_mode)
|
||||
continue;
|
||||
|
||||
free_device_compression_mode(iaa_device, device_mode);
|
||||
iaa_device->compression_modes[i] = NULL;
|
||||
if (iaa_compression_modes[i]->free)
|
||||
iaa_compression_modes[i]->free(device_mode);
|
||||
free_device_compression_mode(iaa_device, device_mode);
|
||||
iaa_device->compression_modes[i] = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user