[v3] ALSA: hda: Abort capability probe on invalid capability
diff mbox

Message ID 1508849807-2250-1-git-send-email-rakesh.a.ughreja@intel.com
State New
Headers show

Commit Message

Ughreja, Rakesh A Oct. 24, 2017, 12:56 p.m. UTC
On reading wrong capability pointer values driver may crash, so whenever
driver discovers unknown HDA capability, log it as error and stop traversing
the link list further.

Signed-off-by: Rakesh Ughreja <rakesh.a.ughreja@intel.com>
---
 sound/hda/hdac_controller.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

Comments

Vinod Koul Oct. 24, 2017, 5:20 a.m. UTC | #1
On Tue, Oct 24, 2017 at 06:26:47PM +0530, Rakesh Ughreja wrote:
> On reading wrong capability pointer values driver may crash, so whenever
> driver discovers unknown HDA capability, log it as error and stop traversing
> the link list further.

Acked-By: Vinod Koul <vinod.koul@intel.com>

> Signed-off-by: Rakesh Ughreja <rakesh.a.ughreja@intel.com>
> ---
>  sound/hda/hdac_controller.c | 3 ++-
>  1 file changed, 2 insertions(+), 1 deletion(-)
> 
> diff --git a/sound/hda/hdac_controller.c b/sound/hda/hdac_controller.c
> index 978dc18..8f7d0d9 100644
> --- a/sound/hda/hdac_controller.c
> +++ b/sound/hda/hdac_controller.c
> @@ -314,7 +314,8 @@ int snd_hdac_bus_parse_capabilities(struct hdac_bus *bus)
>  			break;
>  
>  		default:
> -			dev_dbg(bus->dev, "Unknown capability %d\n", cur_cap);
> +			dev_err(bus->dev, "Unknown capability %d\n", cur_cap);
> +			cur_cap = 0;
>  			break;
>  		}
>  
> -- 
> 2.7.4
>
Takashi Iwai Oct. 24, 2017, 6:16 a.m. UTC | #2
On Tue, 24 Oct 2017 14:56:47 +0200,
Rakesh Ughreja wrote:
> 
> On reading wrong capability pointer values driver may crash, so whenever
> driver discovers unknown HDA capability, log it as error and stop traversing
> the link list further.
> 
> Signed-off-by: Rakesh Ughreja <rakesh.a.ughreja@intel.com>

Applied, thanks.


Takashi

Patch
diff mbox

diff --git a/sound/hda/hdac_controller.c b/sound/hda/hdac_controller.c
index 978dc18..8f7d0d9 100644
--- a/sound/hda/hdac_controller.c
+++ b/sound/hda/hdac_controller.c
@@ -314,7 +314,8 @@  int snd_hdac_bus_parse_capabilities(struct hdac_bus *bus)
 			break;
 
 		default:
-			dev_dbg(bus->dev, "Unknown capability %d\n", cur_cap);
+			dev_err(bus->dev, "Unknown capability %d\n", cur_cap);
+			cur_cap = 0;
 			break;
 		}