Description
In the Linux kernel, the following vulnerability has been resolved: ALSA: hda: fix a possible null-pointer dereference due to data race in snd_hdac_regmap_sync() The variable codec->regmap is often protected by the lock codec->regmap_lock when is accessed. However, it is accessed without holding the lock when is accessed in snd_hdac_regmap_sync(): if (codec->regmap) In my opinion, this may be a harmful race, because if codec->regmap is set to NULL right after the condition is checked, a null-pointer dereference can occur in the called function regcache_sync(): map->lock(map->lock_arg); --> Line 360 in drivers/base/regmap/regcache.c To fix this possible null-pointer dereference caused by data race, the mutex_lock coverage is extended to protect the if statement as well as the function call to regcache_sync(). [ Note: the lack of the regmap_lock itself is harmless for the current codec driver implementations, as snd_hdac_regmap_sync() is only for PM runtime resume that is prohibited during the codec probe. But the change makes the whole code more consistent, so it's merged as is -- tiwai ]
Product status
1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 (git) before 109f0aaa0b8838a88af9125b79579023539300a7
1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 (git) before 9f9eed451176ffcac6b5ba0f6dae1a6b4a1cb0eb
1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 (git) before 8703b26387e1fa4f8749db98d24c67617b873acb
1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 (git) before cdd412b528dee6e0851c4735d6676ec138da13a4
1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 (git) before b32e40379e5b2814de0c4bc199edc2d82317dc07
1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 (git) before 1f4a08fed450db87fbb5ff5105354158bdbe1a22
5.4.255 (semver)
5.10.192 (semver)
5.15.128 (semver)
6.1.47 (semver)
6.4.12 (semver)
6.5 (original_commit_for_fix)
References
git.kernel.org/...c/109f0aaa0b8838a88af9125b79579023539300a7
git.kernel.org/...c/9f9eed451176ffcac6b5ba0f6dae1a6b4a1cb0eb
git.kernel.org/...c/8703b26387e1fa4f8749db98d24c67617b873acb
git.kernel.org/...c/cdd412b528dee6e0851c4735d6676ec138da13a4
git.kernel.org/...c/b32e40379e5b2814de0c4bc199edc2d82317dc07
git.kernel.org/...c/1f4a08fed450db87fbb5ff5105354158bdbe1a22