mirror of
https://github.com/hardkernel/linux.git
synced 2026-06-01 00:36:40 +09:00
wl12xx: Validate FEM index from ini file and FW
commit 2131d3c2f9 upstream.
Check for out of bound FEM index to prevent reading beyond ini
memory end.
Signed-off-by: Pontus Fuchs <pontus.fuchs@gmail.com>
Reviewed-by: Luciano Coelho <coelho@ti.com>
Signed-off-by: Luciano Coelho <coelho@ti.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
This commit is contained in:
committed by
Greg Kroah-Hartman
parent
618bbbe723
commit
240ecc4a6f
@@ -120,6 +120,11 @@ int wl1271_cmd_general_parms(struct wl1271 *wl)
|
||||
if (!wl->nvs)
|
||||
return -ENODEV;
|
||||
|
||||
if (gp->tx_bip_fem_manufacturer >= WL1271_INI_FEM_MODULE_COUNT) {
|
||||
wl1271_warning("FEM index from INI out of bounds");
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
gen_parms = kzalloc(sizeof(*gen_parms), GFP_KERNEL);
|
||||
if (!gen_parms)
|
||||
return -ENOMEM;
|
||||
@@ -143,6 +148,12 @@ int wl1271_cmd_general_parms(struct wl1271 *wl)
|
||||
gp->tx_bip_fem_manufacturer =
|
||||
gen_parms->general_params.tx_bip_fem_manufacturer;
|
||||
|
||||
if (gp->tx_bip_fem_manufacturer >= WL1271_INI_FEM_MODULE_COUNT) {
|
||||
wl1271_warning("FEM index from FW out of bounds");
|
||||
ret = -EINVAL;
|
||||
goto out;
|
||||
}
|
||||
|
||||
wl1271_debug(DEBUG_CMD, "FEM autodetect: %s, manufacturer: %d\n",
|
||||
answer ? "auto" : "manual", gp->tx_bip_fem_manufacturer);
|
||||
|
||||
@@ -162,6 +173,11 @@ int wl128x_cmd_general_parms(struct wl1271 *wl)
|
||||
if (!wl->nvs)
|
||||
return -ENODEV;
|
||||
|
||||
if (gp->tx_bip_fem_manufacturer >= WL1271_INI_FEM_MODULE_COUNT) {
|
||||
wl1271_warning("FEM index from ini out of bounds");
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
gen_parms = kzalloc(sizeof(*gen_parms), GFP_KERNEL);
|
||||
if (!gen_parms)
|
||||
return -ENOMEM;
|
||||
@@ -186,6 +202,12 @@ int wl128x_cmd_general_parms(struct wl1271 *wl)
|
||||
gp->tx_bip_fem_manufacturer =
|
||||
gen_parms->general_params.tx_bip_fem_manufacturer;
|
||||
|
||||
if (gp->tx_bip_fem_manufacturer >= WL1271_INI_FEM_MODULE_COUNT) {
|
||||
wl1271_warning("FEM index from FW out of bounds");
|
||||
ret = -EINVAL;
|
||||
goto out;
|
||||
}
|
||||
|
||||
wl1271_debug(DEBUG_CMD, "FEM autodetect: %s, manufacturer: %d\n",
|
||||
answer ? "auto" : "manual", gp->tx_bip_fem_manufacturer);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user