Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 09d11800 authored by Ola Olsson's avatar Ola Olsson Committed by Johannes Berg
Browse files

nl80211: fix a few memory leaks in reg.c



The first leak occurs when entering the default case
in the switch for the initiator in set_regdom.
The second leaks a platform_device struct if the
platform registration in regulatory_init succeeds but
the sub sequent regulatory hint fails due to no memory.

Signed-off-by: default avatarOla Olsson <ola.olsson@sonymobile.com>
Signed-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
parent b7bb1100
Loading
Loading
Loading
Loading
+4 −1
Original line number Diff line number Diff line
@@ -3029,6 +3029,7 @@ int set_regdom(const struct ieee80211_regdomain *rd,
		break;
	default:
		WARN(1, "invalid initiator %d\n", lr->initiator);
		kfree(rd);
		return -EINVAL;
	}

@@ -3221,8 +3222,10 @@ int __init regulatory_init(void)
	/* We always try to get an update for the static regdomain */
	err = regulatory_hint_core(cfg80211_world_regdom->alpha2);
	if (err) {
		if (err == -ENOMEM)
		if (err == -ENOMEM) {
			platform_device_unregister(reg_pdev);
			return err;
		}
		/*
		 * N.B. kobject_uevent_env() can fail mainly for when we're out
		 * memory which is handled and propagated appropriately above