No need to zeroize the struct rt_addrinfo in the hot path, ok?

Index: net/route.c
===================================================================
RCS file: /cvs/src/sys/net/route.c,v
retrieving revision 1.313
diff -u -p -r1.313 route.c
--- net/route.c 22 Jul 2016 11:03:30 -0000      1.313
+++ net/route.c 16 Aug 2016 09:50:55 -0000
@@ -236,17 +236,19 @@ struct rtentry *
 rt_match(struct sockaddr *dst, uint32_t *src, int flags, unsigned int tableid)
 {
        struct rtentry          *rt0, *rt = NULL;
-       struct rt_addrinfo       info;
        int                      s, error = 0;
 
-       bzero(&info, sizeof(info));
-       info.rti_info[RTAX_DST] = dst;
-
        s = splsoftnet();
        rt = rtable_match(tableid, dst, src);
        if (rt != NULL) {
                if ((rt->rt_flags & RTF_CLONING) && ISSET(flags, RT_RESOLVE)) {
+                       struct rt_addrinfo       info;
+
                        rt0 = rt;
+
+                       memset(&info, 0, sizeof(info));
+                       info.rti_info[RTAX_DST] = dst;
+
                        KERNEL_LOCK();
                        error = rtrequest(RTM_RESOLVE, &info, RTP_DEFAULT,
                            &rt, tableid);

Reply via email to