Re: [PATCH v3 2/4] vhost-vdpa: introduce STOP backend feature bit

From: Dan Carpenter
Date: Mon May 30 2022 - 11:50:39 EST


On Mon, May 30, 2022 at 05:27:25PM +0300, Dan Carpenter wrote:
> On Fri, May 27, 2022 at 10:36:55AM +0300, Dan Carpenter wrote:
> > static void match_pointer(struct expression *ret_value)
> > {
> > struct symbol *type;
> > char *name;
> >
> > type = cur_func_return_type();
> > if (!type || sval_type_max(type).value != 1)
> > return;
> >
> > if (!is_pointer(ret_value))
> > return;
> >
> > name = expr_to_str(ret_value);
> > sm_msg("'%s' return pointer cast to bool", name);
> > free_string(name);
> > }
>
> I found a bug in Smatch with this check. With the Smatch bug fixed then
> there is only only place which does a legitimate implied pointer to bool
> cast. A different function returns NULL on error instead of false.
>
> drivers/gpu/drm/i915/display/intel_dmc.c:249 intel_dmc_has_payload() 'i915->dmc.dmc_info[0]->payload' return pointer cast to bool
> drivers/net/wireless/rndis_wlan.c:1980 rndis_bss_info_update() '(0)' return pointer cast to bool
> drivers/net/wireless/rndis_wlan.c:1989 rndis_bss_info_update() '(0)' return pointer cast to bool
> drivers/net/wireless/rndis_wlan.c:1995 rndis_bss_info_update() '(0)' return pointer cast to bool

Hm... I found another. I'm not sure why it wasn't showing up before.

lib/assoc_array.c:941 assoc_array_insert_mid_shortcut() 'edit' return pointer cast to bool

That's weird. I will re-run the test.

regards,
dan carpenter