[pulseaudio-discuss] [PATCH 1/2] module-device-manager: Fix description restore

Tanu Kaskinen tanu.kaskinen at linux.intel.com
Wed May 29 07:57:20 PDT 2013


On Wed, 2013-05-22 at 14:45 +0300, Tanu Kaskinen wrote:
> On Wed, 2013-05-22 at 13:33 +0200, David Henningsson wrote:
> > e->description is a pointer, not a fixed char array. Hence it
> > makes no sense to use strncmp.
> > 
> > This fixes a compiler warning when compiling under Ubuntu.
> > 
> > Signed-off-by: David Henningsson <david.henningsson at canonical.com>
> > ---
> >  src/modules/module-device-manager.c |    4 ++--
> >  1 file changed, 2 insertions(+), 2 deletions(-)
> > 
> > diff --git a/src/modules/module-device-manager.c b/src/modules/module-device-manager.c
> > index 207870d..390046f 100644
> > --- a/src/modules/module-device-manager.c
> > +++ b/src/modules/module-device-manager.c
> > @@ -889,7 +889,7 @@ static pa_hook_result_t sink_new_hook_callback(pa_core *c, pa_sink_new_data *new
> >      name = pa_sprintf_malloc("sink:%s", new_data->name);
> >  
> >      if ((e = entry_read(u, name))) {
> > -        if (e->user_set_description && strncmp(e->description, pa_proplist_gets(new_data->proplist, PA_PROP_DEVICE_DESCRIPTION), sizeof(e->description)) != 0) {
> > +        if (e->user_set_description && strcmp(e->description, pa_proplist_gets(new_data->proplist, PA_PROP_DEVICE_DESCRIPTION)) != 0) {
> 
> pa_proplist_gets() can return NULL, and if it does that, strcmp() will
> crash.

Actually, I think we should make sure that all sink implementations set
PA_PROP_DEVICE_DESCRIPTION in new_data->proplist. Or even better, we
could have a separate description field in the new_data struct. I'm
dealing with sink descriptions myself currently, and I find it annoying
having to access them through proplists, and if I can't assume that the
property has been set, it's even more annoying.

-- 
Tanu



More information about the pulseaudio-discuss mailing list