Date: Mon, 5 Feb 2007 12:34:16 GMT From: Paolo Pisati <piso@FreeBSD.org> To: Perforce Change Reviews <perforce@freebsd.org> Subject: PERFORCE change 114047 for review Message-ID: <200702051234.l15CYGRl023840@repoman.freebsd.org>
next in thread | raw e-mail | index | archive | help
http://perforce.freebsd.org/chv.cgi?CH=114047 Change 114047 by piso@piso_newluxor on 2007/02/05 12:33:47 o always mtod() before accessing data. o reuse the *mbuf passed as input parameter. Affected files ... .. //depot/projects/soc2005/libalias/sys/netinet/libalias/alias_local.h#20 edit Differences ... ==== //depot/projects/soc2005/libalias/sys/netinet/libalias/alias_local.h#20 (text+ko) ==== @@ -179,48 +179,42 @@ #ifdef _KERNEL #define PULLUP_IPHDR(pip, ptr) do { \ - struct mbuf *m; \ - m = m_pullup((ptr), sizeof(struct ip)); \ - (pip) = mtod(m, struct ip *); \ + ptr = m_pullup((ptr), sizeof(struct ip)); \ + (pip) = mtod((struct mbuf *)ptr, struct ip *); \ } while (0) #define PULLUP_UDPHDR(pip, ptr) do { \ - struct mbuf *m; \ - pip = ptr; \ - m = m_pullup((ptr), (pip->ip_hl << 2) + sizeof(struct udphdr)); \ - (pip) = mtod(m, struct ip *); \ + pip = mtod((struct mbuf *)ptr, struct ip *); \ + ptr = m_pullup((ptr), (pip->ip_hl << 2) + sizeof(struct udphdr)); \ + (pip) = mtod((struct mbuf *)ptr, struct ip *); \ } while (0) #define PULLUP_TCPHDR(pip, ptr) do { \ - struct mbuf *m; \ - pip = ptr; \ - m = m_pullup((ptr), (pip->ip_hl << 2) + sizeof(struct tcphdr)); \ - (pip) = mtod(m, struct ip *); \ + pip = mtod((struct mbuf *)ptr, struct ip *); \ + ptr = m_pullup((ptr), (pip->ip_hl << 2) + sizeof(struct tcphdr)); \ + (pip) = mtod((struct mbuf *)ptr, struct ip *); \ } while (0) #define PULLUP_ICMPHDR(pip, ptr) do { \ - struct mbuf *m; \ - pip = (struct ip *)ptr; \ - m = m_pullup((ptr), (pip->ip_hl << 2) + sizeof(struct icmp)); \ - (pip) = mtod(m, struct ip *); \ + pip = mtod((struct mbuf *)ptr, struct ip *); \ + ptr = m_pullup((ptr), (pip->ip_hl << 2) + sizeof(struct icmp)); \ + (pip) = mtod((struct mbuf *)ptr, struct ip *); \ } while (0) #define PULLUP_ICMPIP64(pip, ptr, ic) do { \ - struct mbuf *m; \ int s; \ - pip = ptr; \ + pip = mtod((struct mbuf *)ptr, struct ip *); \ s = (pip->ip_hl << 2) + sizeof(struct icmp) + \ (ic->icmp_ip.ip_hl << 2) - sizeof(struct ip) + 8; \ - m = m_pullup((ptr), s); \ - (pip) = mtod(m, struct ip *); \ + ptr = m_pullup((ptr), s); \ + (pip) = mtod((struct mbuf *)ptr, struct ip *); \ } while (0) #define PULLUP_IPTCPHDR(pip, ptr) do { \ - struct mbuf *m; \ - m = m_pullup((ptr), sizeof(struct ip)); \ - (pip) = mtod(m, struct ip *); \ - m = m_pullup((ptr), (pip->ip_hl << 2) + sizeof(struct tcphdr)); \ - (pip) = mtod(m, struct ip *); \ + ptr = m_pullup((ptr), sizeof(struct ip)); \ + (pip) = mtod((struct mbuf *)ptr, struct ip *); \ + ptr = m_pullup((ptr), (pip->ip_hl << 2) + sizeof(struct tcphdr)); \ + (pip) = mtod((struct mbuf *)ptr, struct ip *); \ } while (0) #else
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200702051234.l15CYGRl023840>