Commit c758dd29 authored by Rafaël Carré's avatar Rafaël Carré

bonjour: checks asprintf() return value, checks name before using it

parent 8acbb8ac
...@@ -141,7 +141,8 @@ static void resolve_callback( ...@@ -141,7 +141,8 @@ static void resolve_callback(
avahi_address_snprint(a, (sizeof(a)/sizeof(a[0]))-1, address); avahi_address_snprint(a, (sizeof(a)/sizeof(a[0]))-1, address);
if( protocol == AVAHI_PROTO_INET6 ) if( protocol == AVAHI_PROTO_INET6 )
asprintf( &psz_addr, "[%s]", a ); if( asprintf( &psz_addr, "[%s]", a ) == -1 )
return;
if( txt != NULL ) if( txt != NULL )
asl = avahi_string_list_find( txt, "path" ); asl = avahi_string_list_find( txt, "path" );
...@@ -153,8 +154,12 @@ static void resolve_callback( ...@@ -153,8 +154,12 @@ static void resolve_callback(
if( avahi_string_list_get_pair( asl, &key, &value, &size ) == 0 && if( avahi_string_list_get_pair( asl, &key, &value, &size ) == 0 &&
value != NULL ) value != NULL )
{ {
asprintf( &psz_uri, "http://%s:%d%s", if( asprintf( &psz_uri, "http://%s:%d%s",
psz_addr != NULL ? psz_addr : a, port, value ); psz_addr != NULL ? psz_addr : a, port, value ) == -1 )
{
free( psz_addr );
return;
}
} }
if( key != NULL ) if( key != NULL )
avahi_free( (void *)key ); avahi_free( (void *)key );
...@@ -163,8 +168,12 @@ static void resolve_callback( ...@@ -163,8 +168,12 @@ static void resolve_callback(
} }
else else
{ {
asprintf( &psz_uri, "http://%s:%d", if( asprintf( &psz_uri, "http://%s:%d",
psz_addr != NULL ? psz_addr : a, port ); psz_addr != NULL ? psz_addr : a, port ) == -1 )
{
free( psz_addr );
return;
}
} }
if( psz_addr != NULL ) if( psz_addr != NULL )
...@@ -204,7 +213,6 @@ static void browse_callback( ...@@ -204,7 +213,6 @@ static void browse_callback(
{ {
services_discovery_t *p_sd = ( services_discovery_t* )userdata; services_discovery_t *p_sd = ( services_discovery_t* )userdata;
services_discovery_sys_t *p_sys = p_sd->p_sys; services_discovery_sys_t *p_sys = p_sd->p_sys;
if( event == AVAHI_BROWSER_NEW ) if( event == AVAHI_BROWSER_NEW )
{ {
if( avahi_service_resolver_new( p_sys->client, interface, protocol, if( avahi_service_resolver_new( p_sys->client, interface, protocol,
...@@ -218,7 +226,7 @@ static void browse_callback( ...@@ -218,7 +226,7 @@ static void browse_callback(
avahi_strerror( avahi_client_errno( p_sys->client ) ) ); avahi_strerror( avahi_client_errno( p_sys->client ) ) );
} }
} }
else else if( name )
{ {
/** \todo Store the input id and search it, rather than searching the items */ /** \todo Store the input id and search it, rather than searching the items */
input_item_t *p_item; input_item_t *p_item;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment