In the Linux kernel, the following vulnerability has been resolved:
ALSA: hda: Fix missing pointer check in hdacomponentmanager_init function
The _componentmatchadd function may assign the 'matchptr' pointer the value ERRPTR(-ENOMEM), which will subsequently be dereferenced.
The call stack leading to the error looks like this:
hdacomponentmanagerinit |-> componentmatchadd |-> componentmatchaddrelease |-> _componentmatchadd ( ... ,**matchptr, ... ) |-> *matchptr = ERRPTR(-ENOMEM); // assign |-> componentmasteraddwithmatch( ... match) |-> componentmatchrealloc(match, match->num); // dereference
Add IS_ERR() check to prevent the crash.
Found by Linux Verification Center (linuxtesting.org) with SVACE.