summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sys/src/9/ip/ipifc.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/sys/src/9/ip/ipifc.c b/sys/src/9/ip/ipifc.c
index ac0da6bd9..66ae8333b 100644
--- a/sys/src/9/ip/ipifc.c
+++ b/sys/src/9/ip/ipifc.c
@@ -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);