From: Jakub Kicinski Date: Tue, 31 Jul 2018 03:33:15 +0000 (-0700) Subject: nfp: fix variable dereferenced before check in nfp_app_ctrl_rx_raw() X-Git-Url: http://git.maquefel.me/?a=commitdiff_plain;h=240b74fde35293f718c6cdfa486b3a005c4243c9;p=linux.git nfp: fix variable dereferenced before check in nfp_app_ctrl_rx_raw() 'app' is dereferenced before used for the devlink trace point. In case FW is buggy and sends a control message to a VF queue we should make sure app is not NULL. Reported-by: Dan Carpenter Signed-off-by: Jakub Kicinski Reviewed-by: Dirk van der Merwe Signed-off-by: Daniel Borkmann --- diff --git a/drivers/net/ethernet/netronome/nfp/nfp_app.h b/drivers/net/ethernet/netronome/nfp/nfp_app.h index ccb244cf6c302..4e1eb33956489 100644 --- a/drivers/net/ethernet/netronome/nfp/nfp_app.h +++ b/drivers/net/ethernet/netronome/nfp/nfp_app.h @@ -392,10 +392,11 @@ static inline void nfp_app_ctrl_rx(struct nfp_app *app, struct sk_buff *skb) static inline void nfp_app_ctrl_rx_raw(struct nfp_app *app, const void *data, unsigned int len) { - trace_devlink_hwmsg(priv_to_devlink(app->pf), true, 0, data, len); + if (!app || !app->type->ctrl_msg_rx_raw) + return; - if (app && app->type->ctrl_msg_rx_raw) - app->type->ctrl_msg_rx_raw(app, data, len); + trace_devlink_hwmsg(priv_to_devlink(app->pf), true, 0, data, len); + app->type->ctrl_msg_rx_raw(app, data, len); } static inline int nfp_app_eswitch_mode_get(struct nfp_app *app, u16 *mode)