hda empty modelname comparison
PATCH 1/1 hda empty modelname comparison
This patch prevents a comparison between a possibly empty modelname string in the hda code.
-Joachim
Only in alsa-kernel/include: version.h
pci/hda/hda_codec.c renamed from mnt/alsa/alsa-kernel/pci/hda/hda_codec.c +1 -1
@@ -573,7 +573,7 @@ int snd_hda_codec_new(struct hda_bus *bu 0); } -if (strcmp (codec->bus->modelname,"generic" )) +if ( codec->bus->modelname &&strcmp (codec->bus->modelname,"generic" )) codec->preset =find_codec_preset (codec);if (! *bus->card->mixername) snd_hda_get_codec_name(codec, bus->card->mixername,
Only in alsa-kernel/pci/hda: .hda_codec.c.swp
-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your opinions on IT & business topics through brief surveys-and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
Alsa-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/alsa-devel
Quoted 4 lines · Joachim Deguara
This patch prevents a comparison between a possibly empty modelname string in the hda code.
-Joachim
Unfortunately, the way the original patch was written, the only options are generic or segfault. Your patch just removes the segfault, sending all cards to the generic parser.
I've tested a slightly different approach, based on your empty test, just reverse logic. Test it to confirm that it works. It works on my system with a Conexant reference board and a Sigmatel STAC9227 (both on the same system).
Signed off by Tobin Davis <[email protected]>
pci/hda/hda_codec.c +1 -1
@@ -573,7 +573,7 @@ int snd_hda_codec_new(struct hda_bus *bu 0); } -if (strcmp (codec->bus->modelname,"generic" )) +if (!(codec->bus->modelname &&strcmp (codec->bus->modelname,"generic" ))) codec->preset =find_codec_preset (codec);if (! *bus->card->mixername) snd_hda_get_codec_name(codec, bus->card->mixername,
-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your opinions on IT & business topics through brief surveys-and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
Alsa-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/alsa-devel
At Wed, 07 Mar 2007 12:04:30 -0800,
Quoted 12 lines · Tobin Davis
On Tue, 2007-03-06 at 15:59 +0100, Joachim Deguara wrote:
This patch prevents a comparison between a possibly empty modelname string in the hda code.
-Joachim
Unfortunately, the way the original patch was written, the only options are generic or segfault. Your patch just removes the segfault, sending all cards to the generic parser.
Quoted 5 lines
I've tested a slightly different approach, based on your empty test, just reverse logic. Test it to confirm that it works. It works on my system with a Conexant reference board and a Sigmatel STAC9227 (both on the same system).
Signed off by Tobin Davis <[email protected]>
That's my bad. I haven't tested much, and unfortunately, 1.0.14rc3 was released while I've been in vacation soon after the wrong patch.
The fix patch below is already on my local tree, but it couldn't be pushed because the ALSA HG tree is currently down (I guess Jaroslav is working on his server). If needed, we'll release the fixed version. So stay tuned.
Takashi
# HG changeset patch
# User tiwai
# Date 1173279359 -3600
# Node ID 9b8fef0370f213c42fc93098c7b8cc2c8188b177 # Parent e4f79cb873e55818b4aca604d17e350b5a480a27 Fix NULL dereference with null modelname
Fix the NULL dereference of modelname option. The check is moved to find_codec_preset() now, too.
pci/hda/hda_codec.c +4 -2
@@ -403,6 +403,9 @@ static const struct hda_codec_preset *fi {const struct hda_codec_preset **tbl, *preset; +if (codec->bus->modelname && !strcmp (codec->bus->modelname,"generic" )) +return NULL ;/* use the generic parser */ +for (tbl = hda_preset_tables; *tbl; tbl++) {for (preset = *tbl; preset->id; preset++) {u32 mask = preset->mask;
@@ -573,8 +576,7 @@ int snd_hda_codec_new(struct hda_bus *bu 0); } -if (strcmp (codec->bus->modelname,"generic" )) - codec->preset =find_codec_preset (codec); + codec->preset =find_codec_preset (codec);if (! *bus->card->mixername)snd_hda_get_codec_name (codec, bus->card->mixername,sizeof (bus->card->mixername));
-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your opinions on IT & business topics through brief surveys-and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
Quoted 4 lines · Takashi Iwai
+ if (
codec->bus->modelname&& !strcmp(codec->bus->modelname,
"generic"))
+ return NULL; /* use the generic parser */
Should be:
+ if (codec->bus->modelname && strcmp(codec->bus->modelname,
"generic"))
+ return NULL; /* use the generic parser */
You've got the logic reversed.
Signature · 1 line
Tobin Davis <[email protected]>
-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your opinions on IT & business topics through brief surveys-and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
Alsa-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/alsa-devel
Oops, nevermind. I've been reading too many pseudo-code documents. I expected strcmp to return true if matched.
This works.
Tobin
Quoted 4 lines · Takashi Iwai
+ if (
codec->bus->modelname&& !strcmp(codec->bus->modelname,
"generic"))
+ return NULL; /* use the generic parser */
Should be:
+ if (codec->bus->modelname && strcmp(codec->bus->modelname,
"generic"))
+ return NULL; /* use the generic parser */
You've got the logic reversed.
Signature · 1 line
Tobin Davis <[email protected]>
-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your opinions on IT & business topics through brief surveys-and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
Alsa-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/alsa-devel
At Wed, 07 Mar 2007 22:20:20 +0100,
Quoted 19 lines · I wrote:
At Wed, 07 Mar 2007 12:04:30 -0800,
Quoted 16 lines · Tobin Davis
On Tue, 2007-03-06 at 15:59 +0100, Joachim Deguara wrote:
This patch prevents a comparison between a possibly empty modelname string in the hda code.
-Joachim
Unfortunately, the way the original patch was written, the only options are generic or segfault. Your patch just removes the segfault, sending all cards to the generic parser.
I've tested a slightly different approach, based on your empty test, just reverse logic. Test it to confirm that it works. It works on my system with a Conexant reference board and a Sigmatel STAC9227 (both on the same system).
Quoted 8 lines
Quoted 1 line
Signed off by Tobin Davis <[email protected]>
That's my bad. I haven't tested much, and unfortunately, 1.0.14rc3 was released while I've been in vacation soon after the wrong patch.
The fix patch below is already on my local tree, but it couldn't be pushed because the ALSA HG tree is currently down (I guess Jaroslav is working on his server). If needed, we'll release the fixed version. So stay tuned.
Now fixed on HG tree.
Takashi
-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your opinions on IT & business topics through brief surveys-and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV