diff mbox

[1/2] ASoC: hdac_hdmi: avoid reference to invalid variable of the pin list

Message ID 1488388284-11227-1-git-send-email-jeeja.kp@intel.com (mailing list archive)
State Accepted
Commit 04c8f2bf9117de7b8e8bc0b90e8c4bff15f4f613
Headers show

Commit Message

Jeeja KP March 1, 2017, 5:11 p.m. UTC
From: Jeeja KP <jeeja.kp@intel.com>

Using pin list array iterator outside the iteration of the list can
point to dummy element, which can be invalid. So don't use pin variable
outside the pin list iteration.

This fixes the following coccinelle warning:
sound/soc/codecs/hdac_hdmi.c:1419:5-8: ERROR: invalid reference to the
index variable of the iterator

Fixes: 2acd8309a3a4('ASoC: hdac_hdmi: Add support to handle MST capable pin')
Reported-by: Julia Lawall <Julia.Lawall@lip6.fr>
Signed-off-by: Jeeja KP <jeeja.kp@intel.com>
---
 sound/soc/codecs/hdac_hdmi.c | 9 ++++-----
 1 file changed, 4 insertions(+), 5 deletions(-)

Comments

Vinod Koul March 2, 2017, 8:52 a.m. UTC | #1
On Wed, Mar 01, 2017 at 10:41:23PM +0530, jeeja.kp@intel.com wrote:
> From: Jeeja KP <jeeja.kp@intel.com>
> 
> Using pin list array iterator outside the iteration of the list can
> point to dummy element, which can be invalid. So don't use pin variable
> outside the pin list iteration.
> 
> This fixes the following coccinelle warning:
> sound/soc/codecs/hdac_hdmi.c:1419:5-8: ERROR: invalid reference to the
> index variable of the iterator
> 
> Fixes: 2acd8309a3a4('ASoC: hdac_hdmi: Add support to handle MST capable pin')
> Reported-by: Julia Lawall <Julia.Lawall@lip6.fr>
> Signed-off-by: Jeeja KP <jeeja.kp@intel.com>

Both:

Acked-by: Vinod Koul <vinod.koul@intel.com>
diff mbox

Patch

diff --git a/sound/soc/codecs/hdac_hdmi.c b/sound/soc/codecs/hdac_hdmi.c
index 78fca8a..bb40569 100644
--- a/sound/soc/codecs/hdac_hdmi.c
+++ b/sound/soc/codecs/hdac_hdmi.c
@@ -1534,21 +1534,20 @@  static void hdac_hdmi_eld_notify_cb(void *aptr, int port, int pipe)
 			pin->mst_capable = false;
 			/* if not MST, default is port[0] */
 			hport = &pin->ports[0];
-			goto out;
 		} else {
 			for (i = 0; i < pin->num_ports; i++) {
 				pin->mst_capable = true;
 				if (pin->ports[i].id == pipe) {
 					hport = &pin->ports[i];
-					goto out;
+					break;
 				}
 			}
 		}
+
+		if (hport)
+			hdac_hdmi_present_sense(pin, hport);
 	}
 
-out:
-	if (pin && hport)
-		hdac_hdmi_present_sense(pin, hport);
 }
 
 static struct i915_audio_component_audio_ops aops = {