]> git.lizzy.rs Git - plan9front.git/commitdiff
devip: make sure ifc is bound in add6 ctl command
authorcinap_lenrek <cinap_lenrek@felloff.net>
Sat, 11 May 2019 12:54:10 +0000 (14:54 +0200)
committercinap_lenrek <cinap_lenrek@felloff.net>
Sat, 11 May 2019 12:54:10 +0000 (14:54 +0200)
sys/src/9/ip/ipifc.c

index ac0da6bd9c7bc5e7a5d25bf1752712c6e9ec1133..66ae8333b1ccb6748b54bcbada7c2b5b099ff087 100644 (file)
@@ -1576,13 +1576,14 @@ ipifcregisterproxy(Fs *f, Ipifc *ifc, uchar *ip, int add)
 }
 
 char*
-ipifcadd6(Ipifc *ifc, char**argv, int argc)
+ipifcadd6(Ipifc *ifc, char **argv, int argc)
 {
        int plen = 64;
        char addr[40], preflen[6];
        char *params[3];
        uchar prefix[IPaddrlen];
        Iplifc lifc;
+       Medium *m;
 
        lifc.onlink = 1;
        lifc.autoflag = 1;
@@ -1616,9 +1617,10 @@ ipifcadd6(Ipifc *ifc, char**argv, int argc)
                return Ebadarg;
 
        /* issue "add" ctl msg for v6 link-local addr and prefix len */
-       if(ifc->m->pref2addr == nil)
+       m = ifc->m;
+       if(m == nil || m->pref2addr == nil)
                return Ebadarg;
-       (*ifc->m->pref2addr)(prefix, ifc->mac); /* mac → v6 link-local addr */
+       (*m->pref2addr)(prefix, ifc->mac);      /* mac → v6 link-local addr */
 
        sprint(addr, "%I", prefix);
        sprint(preflen, "/%d", plen);