re: PM / devfreq: map devfreq drivers to governor using name

From: Colin Ian King
Date: Wed Oct 28 2020 - 20:02:27 EST


Hi,

Static analysis of linux-next with Coverity has found a potential null
pointer dereference issue with the following commit:

commit 1b5c1be2c88e8445a20fa1929e26c37e7ca8c926
Author: Nishanth Menon <nm@xxxxxx>
Date: Mon Oct 29 15:01:45 2012 -0500

PM / devfreq: map devfreq drivers to governor using name


The analysis is as follows for devfreq_remove_governor in
drivers/devfreq/devfreq.c

1312

deref_ptr_in_call: Dereferencing pointer devfreq->governor.

1313 if (!strncmp(devfreq->governor->name, governor->name,
1314 DEVFREQ_NAME_LEN)) {
1315 /* we should have a devfreq governor! */

Dereference before null check (REVERSE_INULL)
check_after_deref: Null-checking devfreq->governor suggests that it may
be null, but it has already been dereferenced on all paths leading to
the check.

1316 if (!devfreq->governor) {
1317 dev_warn(dev, "%s: Governor %s NOT
present\n",
1318 __func__, governor->name);
1319 continue;
1320 /* Fall through */

So devfreq->governor->name is dereferencing devfreq->governor before a
null check on devfreq->governor

Colin