diff options
Diffstat (limited to 'sys/net/rtsock.c')
-rw-r--r-- | sys/net/rtsock.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/sys/net/rtsock.c b/sys/net/rtsock.c index 58673af..449b4cb 100644 --- a/sys/net/rtsock.c +++ b/sys/net/rtsock.c @@ -326,10 +326,10 @@ route_output(struct mbuf *m, struct socket *so) if (info.rti_info[RTAX_GENMASK]) { struct radix_node *t; t = rn_addmask((caddr_t) info.rti_info[RTAX_GENMASK], 0, 1); - /* XXX why this odd cast to (caddr_t *) ? Maybe wrong ? */ - if (t && bcmp((caddr_t)info.rti_info[RTAX_GENMASK] + 1, - (caddr_t)t->rn_key + 1, - *(u_char *)t->rn_key - 1) == 0) + if (t != NULL && + bcmp((caddr_t)info.rti_info[RTAX_GENMASK] + 1, + (caddr_t)t->rn_key + 1, + ((struct sockaddr *)(t->rn_key))->sa_len - 1) == 0) info.rti_info[RTAX_GENMASK] = (struct sockaddr *)(t->rn_key); else |