[alsa-devel] [PATCH] ALSA: Warn when control names are truncated

Jaroslav Kysela perex at perex.cz
Wed Oct 29 19:31:25 CET 2008


On Wed, 29 Oct 2008, Takashi Iwai wrote:

> At Wed, 29 Oct 2008 15:51:40 +0100 (CET),
> Jaroslav Kysela wrote:
> > 
> > On Wed, 29 Oct 2008, Takashi Iwai wrote:
> > 
> > > At Wed, 29 Oct 2008 14:40:30 +0000,
> > > Mark Brown wrote:
> > > > 
> > > > This is likely to confuse user interfaces since the end of the control
> > > > name is interpreted (eg, "Volume", "Switch").
> > > > 
> > > > Signed-off-by: Mark Brown <broonie at opensource.wolfsonmicro.com>
> > > 
> > > Thanks, applied now.
> > > 
> > > 
> > > > +		if (strcmp(ncontrol->name, kctl.id.name) != 0)
> > 
> > Maybe better is to just use end char comparsion to save few CPU ticks:
> > 
> > if (kctl.id.name[sizeof(kctl.id.name)-2] != '\0' &&
> >     ncontrol->name[sizeof(kctl.id.name)-1] != '\0')
> 
> No, this may cause segfault

How? The first check in the fixed size variable initialized with zeros 
allocated on heap ensures that ncontrol->name string is at least 
sizeof(kctl.id.name) long. There is no possibility of segfault.

> (and way too hacky to understand what's the purpose of the code...)

The printk explains check nicely.

					Jaroslav

-----
Jaroslav Kysela <perex at perex.cz>
Linux Kernel Sound Maintainer
ALSA Project, Red Hat, Inc.



More information about the Alsa-devel mailing list