After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 710606 - Segfault in arv_gv_discover_socket_list_new when non INET interface available
Segfault in arv_gv_discover_socket_list_new when non INET interface available
Status: RESOLVED FIXED
Product: aravis
Classification: Other
Component: GV
git master
Other Linux
: Normal normal
: ---
Assigned To: aravis-maint
aravis-maint
Depends on:
Blocks:
 
 
Reported: 2013-10-22 07:37 UTC by thjc
Modified: 2013-10-22 14:42 UTC
See Also:
GNOME target: ---
GNOME version: ---



Description thjc 2013-10-22 07:37:07 UTC
Some net interfaces do not have a valid ifa_addr pointer (for example socket can). This leads to a segfault when running device discovery.

This can be fixed in in arvgvinterface.c

by adding an additional check for

 (ifap_iter->ifa_addr != NULL) &&

in arv_gv_discover_socket_list_new (void)

giving

static ArvGvDiscoverSocketList *
arv_gv_discover_socket_list_new (void)
{
ArvGvDiscoverSocketList *socket_list;
GSList *iter;
struct ifaddrs *ifap  = NULL;
struct ifaddrs *ifap_iter;
int i;

socket_list = g_new0 (ArvGvDiscoverSocketList, 1);

if (getifaddrs (&ifap) < 0)
return socket_list;

for (ifap_iter = ifap; ifap_iter != NULL; ifap_iter = ifap_iter->ifa_next) {
if ((ifap_iter->ifa_flags & IFF_UP) != 0 &&
   (ifap_iter->ifa_flags & IFF_POINTOPOINT) == 0 &&
   (ifap_iter->ifa_addr != NULL) &&
   (ifap_iter->ifa_addr->sa_family == AF_INET)) {
ArvGvDiscoverSocket *discover_socket = g_new0 (ArvGvDiscoverSocket, 1);
GSocketAddress *socket_address;
GInetAddress *inet_address;
char *inet_address_string;
GError *error = NULL;
Comment 1 Emmanuel Pacaud 2013-10-22 14:42:45 UTC
Thanks for your patch. It's now available in git master.

https://git.gnome.org/browse/aravis/commit/?id=a668657793ef183748b42c1ed44ac0454f87c87d