From 7186be0424ba65942a13b7706017c6ef4338f219 Mon Sep 17 00:00:00 2001 From: cinap_lenrek Date: Sat, 11 May 2019 14:54:10 +0200 Subject: [PATCH] devip: make sure ifc is bound in add6 ctl command --- sys/src/9/ip/ipifc.c | 8 +++++--- 1 file 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);