On Tue, Sep 02, 2025 at 01:59:10PM +0200, Bartosz Golaszewski wrote:
From: Bartosz Golaszewski bartosz.golaszewski@linaro.org
While the API contract in docs doesn't specify it explicitly,
So, why not to amend the doc at the same time?
the generic implementation of the get_function_name() callback from struct pinmux_ops - pinmux_generic_get_function_name() - can fail and return NULL. This is already checked in pinmux_check_ops() so add a similar check in pinmux_func_name_to_selector() instead of passing the returned pointer right down to strcmp() where the NULL can get dereferenced. This is normal operation when adding new pinfunctions.
Fixes? Reported? Closes?
...
while (selector < nfuncs) { const char *fname = ops->get_function_name(pctldev, selector);
if (!strcmp(function, fname))
if (fname && !strcmp(function, fname)) return selector;
I would slightly refactor this:
const char *fname;
fname = ops->get_function_name(pctldev, selector); if (fname && !strcmp(function, fname)) return selector;
selector++;