neighbor: check return values
Need to check for invalid address and buffer overrun in ip neigh command with invalid paramters.
This commit is contained in:
parent
c3087c10f1
commit
542b0cc759
|
|
@ -157,14 +157,19 @@ static int ipneigh_modify(int cmd, int flags, int argc, char **argv)
|
||||||
exit(-1);
|
exit(-1);
|
||||||
}
|
}
|
||||||
req.ndm.ndm_family = dst.family;
|
req.ndm.ndm_family = dst.family;
|
||||||
addattr_l(&req.n, sizeof(req), NDA_DST, &dst.data, dst.bytelen);
|
if (addattr_l(&req.n, sizeof(req), NDA_DST, &dst.data, dst.bytelen) < 0)
|
||||||
|
return -1;
|
||||||
|
|
||||||
if (lla && strcmp(lla, "null")) {
|
if (lla && strcmp(lla, "null")) {
|
||||||
char llabuf[20];
|
char llabuf[20];
|
||||||
int l;
|
int l;
|
||||||
|
|
||||||
l = ll_addr_a2n(llabuf, sizeof(llabuf), lla);
|
l = ll_addr_a2n(llabuf, sizeof(llabuf), lla);
|
||||||
addattr_l(&req.n, sizeof(req), NDA_LLADDR, llabuf, l);
|
if (l < 0)
|
||||||
|
return -1;
|
||||||
|
|
||||||
|
if (addattr_l(&req.n, sizeof(req), NDA_LLADDR, llabuf, l) < 0)
|
||||||
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
ll_init_map(&rth);
|
ll_init_map(&rth);
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue