summaryrefslogtreecommitdiff
path: root/sys/src/9/ip
diff options
context:
space:
mode:
authorcinap_lenrek <cinap_lenrek@felloff.net>2019-05-11 14:54:10 +0200
committercinap_lenrek <cinap_lenrek@felloff.net>2019-05-11 14:54:10 +0200
commit7186be0424ba65942a13b7706017c6ef4338f219 (patch)
tree70970e85d60ffffe9c19ef3a58730703a026fcf6 /sys/src/9/ip
parent3a0d5f41a8253b4a3fbb6ae4b6ca77789fd6ae83 (diff)
devip: make sure ifc is bound in add6 ctl command
Diffstat (limited to 'sys/src/9/ip')
-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);