Bug 11201

Summary: Segmentation fault when use getifaddrs function
Product: Sisyphus Reporter: Klimov Denis <kliden>
Component: glibcAssignee: placeholder <placeholder>
Status: CLOSED NOTABUG QA Contact: qa-sisyphus
Severity: normal    
Priority: P1 CC: glebfm, ldv, placeholder, vvk
Version: unstable   
Hardware: all   
OS: Linux   
URL: http://www.mail-archive.com/debian-glibc@lists.debian.org/msg32785.html
Attachments:
Description Flags
prog for test bug none

Description Klimov Denis 2007-03-23 19:29:15 MSK
This is my program, which demo bug in getifaddrs function:

/* TEST BUG PROGRAM
 *
 * Compile
 * gcc -o getifaddrs getifaddrs.c
 *
 * Testing
 * with up and down ppp* interfaces run ./getifaddrs
 *
 * Author: Klimov Denis aka zver
 * email: kliden <at> km.ru
 * 23/03/2007
 *
 * P.S. some problem info about this bug you may read
 * http://www.mail-archive.com/debian-glibc@lists.debian.org/msg32785.html
 */

#include <stdio.h>
#include <stdlib.h>

#include <sys/types.h>
#include <sys/socket.h>
#include <ifaddrs.h>

int main()
{
struct ifaddrs *ifap = NULL;
int rez = getifaddrs(&ifap);
int st=1;
if (rez==0 && ifap!=NULL)
        {
        do
                {
                if (st==1)
                        st=0;
                        else
                        ifap=(*ifap).ifa_next;
                if (ifap->ifa_addr->sa_family == AF_INET)
                        {
                        printf("Interface name: %s \n",(*ifap).ifa_name);
                        }
                }
        while  ((*ifap).ifa_next!=NULL);
        }
return 0;
}

Actual Results:  
Segmentation fault when ppp* device up
List network device when _all_ ppp* device down

Expected Results:  
List network device always

some problem info about this bug you may read example at this page:
http://www.mail-archive.com/debian-glibc@lists.debian.org/msg32785.html
Comment 1 Klimov Denis 2007-03-23 19:32:23 MSK
Created attachment 1872 [details]
prog for test bug
Comment 2 Klimov Denis 2007-03-27 15:45:17 MSD
May be this help:
http://sources.redhat.com/ml/ecos-patches/2004-06/msg00015.html
Comment 3 Dmitry V. Levin 2007-09-19 04:55:55 MSD
ifa_addr references either the address of the interface or the link level
address of the interface, if one exists, otherwise it is NULL.

That is, your test case is bogus.