All of lore.kernel.org
 help / color / mirror / Atom feed
* sound: bebop: strncmp length oddity
@ 2016-10-29 21:37 Joe Perches
  2016-11-17 11:47 ` [alsa-devel] " Takashi Iwai
  0 siblings, 1 reply; 4+ messages in thread
From: Joe Perches @ 2016-10-29 21:37 UTC (permalink / raw)
  To: Takashi Sakamoto; +Cc: Takashi Iwai, Clemens Ladisch, alsa-devel, LKML

15 isn't the length of the string, is that really what's desired?

linux/next/sound/firewire/bebob/bebop.c

-----------------------------

static bool
check_audiophile_booted(struct fw_unit *unit)
{
	char name[24] = {0};

	if (fw_csr_string(unit->directory, CSR_MODEL, name, sizeof(name)) < 0)
		return false;

	return strncmp(name, "FW Audiophile Bootloader", 15) != 0;
}

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [alsa-devel] sound: bebop: strncmp length oddity
  2016-10-29 21:37 sound: bebop: strncmp length oddity Joe Perches
@ 2016-11-17 11:47 ` Takashi Iwai
  2016-11-17 20:07   ` Takashi Sakamoto
  0 siblings, 1 reply; 4+ messages in thread
From: Takashi Iwai @ 2016-11-17 11:47 UTC (permalink / raw)
  To: Joe Perches
  Cc: Takashi Sakamoto, alsa-devel, Clemens Ladisch, Takashi Iwai, LKML

On Sat, 29 Oct 2016 23:37:00 +0200,
Joe Perches wrote:
> 
> 15 isn't the length of the string, is that really what's desired?
> 
> linux/next/sound/firewire/bebob/bebop.c
> 
> -----------------------------
> 
> static bool
> check_audiophile_booted(struct fw_unit *unit)
> {
> 	char name[24] = {0};
> 
> 	if (fw_csr_string(unit->directory, CSR_MODEL, name, sizeof(name)) < 0)
> 		return false;
> 
> 	return strncmp(name, "FW Audiophile Bootloader", 15) != 0;
> }

Indeed it looks bogus.  Even "FW...." string is already 24 letters, so
it's over name[] array size.

Sakamoto-san, could you fix it properly?


thanks,

Takashi

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: sound: bebop: strncmp length oddity
  2016-11-17 11:47 ` [alsa-devel] " Takashi Iwai
@ 2016-11-17 20:07   ` Takashi Sakamoto
  2016-11-17 21:34     ` Nicolas Iooss
  0 siblings, 1 reply; 4+ messages in thread
From: Takashi Sakamoto @ 2016-11-17 20:07 UTC (permalink / raw)
  To: Takashi Iwai, Joe Perches, nicolas.iooss_linux
  Cc: alsa-devel, Clemens Ladisch, Takashi Iwai, LKML

s/bebop/bebob/
(BeBoB is 'BridgeCo enhanced Breakout Box'.)

I'm sorry to miss this post, Joe. I was busy to prepare for Audio 
mini-conference on Linux Plumber Conference. I realized that Nicolas 
posted a patch for this issue.

[alsa-devel] [PATCH 1/1] ALSA: bebob: use the right string length in 
check_audiophile_booted()
http://mailman.alsa-project.org/pipermail/alsa-devel/2016-October/114073.html

On Nov 17 2016 20:47, Takashi Iwai wrote:
> On Sat, 29 Oct 2016 23:37:00 +0200,
> Joe Perches wrote:
>>
>> 15 isn't the length of the string, is that really what's desired?
>>
>> linux/next/sound/firewire/bebob/bebop.c
>>
>> -----------------------------
>>
>> static bool
>> check_audiophile_booted(struct fw_unit *unit)
>> {
>> 	char name[24] = {0};
>>
>> 	if (fw_csr_string(unit->directory, CSR_MODEL, name, sizeof(name)) < 0)
>> 		return false;
>>
>> 	return strncmp(name, "FW Audiophile Bootloader", 15) != 0;
>> }
>
> Indeed it looks bogus.  Even "FW...." string is already 24 letters, so
> it's over name[] array size.
>
> Sakamoto-san, could you fix it properly?

It's OK just to compare first a few characters, while I left whole 
string for our information because model-specific information is easily 
lost.

For M-Audio's FireWire Audiophile, modalias of 
'ieee1394:ven00000D6Cmo00010060sp' hits this unit only. However the unit 
has two states relevant to loaded firmware. Initial firmware returns 'FW 
Audiophile Bootloader', while functional firmware returns 'FW 
Audiophile'. Just comparing the first 15 characters is the shortest way 
to defferentiate them. (Actually 14 characters. I guess that I did avoid 
comparison based on LWS...)

Therefore, changing comparison range is not for bug fix, just for 
readers. But I agree with these patches because the code is a bit 
confusing. I'll post a patch soon for this aim with appropriate 
information, sorry for Nicolas.


Thanks

Takashi Sakamoto

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: sound: bebop: strncmp length oddity
  2016-11-17 20:07   ` Takashi Sakamoto
@ 2016-11-17 21:34     ` Nicolas Iooss
  0 siblings, 0 replies; 4+ messages in thread
From: Nicolas Iooss @ 2016-11-17 21:34 UTC (permalink / raw)
  To: Takashi Sakamoto, Takashi Iwai, Joe Perches
  Cc: alsa-devel, Clemens Ladisch, Takashi Iwai, LKML

On 17/11/16 21:07, Takashi Sakamoto wrote:
> On Nov 17 2016 20:47, Takashi Iwai wrote:
>> On Sat, 29 Oct 2016 23:37:00 +0200,
>> Joe Perches wrote:
>>>
>>> 15 isn't the length of the string, is that really what's desired?
>>>
>>> linux/next/sound/firewire/bebob/bebop.c
>>>
>>> -----------------------------
>>>
>>> static bool
>>> check_audiophile_booted(struct fw_unit *unit)
>>> {
>>>     char name[24] = {0};
>>>
>>>     if (fw_csr_string(unit->directory, CSR_MODEL, name, sizeof(name))
>>> < 0)
>>>         return false;
>>>
>>>     return strncmp(name, "FW Audiophile Bootloader", 15) != 0;
>>> }
>>
>> Indeed it looks bogus.  Even "FW...." string is already 24 letters, so
>> it's over name[] array size.
>>
>> Sakamoto-san, could you fix it properly?
> 
> It's OK just to compare first a few characters, while I left whole
> string for our information because model-specific information is easily
> lost.
> 
> For M-Audio's FireWire Audiophile, modalias of
> 'ieee1394:ven00000D6Cmo00010060sp' hits this unit only. However the unit
> has two states relevant to loaded firmware. Initial firmware returns 'FW
> Audiophile Bootloader', while functional firmware returns 'FW
> Audiophile'. Just comparing the first 15 characters is the shortest way
> to defferentiate them. (Actually 14 characters. I guess that I did avoid
> comparison based on LWS...)
> 
> Therefore, changing comparison range is not for bug fix, just for
> readers. But I agree with these patches because the code is a bit
> confusing. I'll post a patch soon for this aim with appropriate
> information, sorry for Nicolas.

All right, so long as the code is modified in a way that makes it more
consistent, I am all right. It is one patch less I need to care about :)

Nicolas

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2016-11-17 21:34 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-10-29 21:37 sound: bebop: strncmp length oddity Joe Perches
2016-11-17 11:47 ` [alsa-devel] " Takashi Iwai
2016-11-17 20:07   ` Takashi Sakamoto
2016-11-17 21:34     ` Nicolas Iooss

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.