svn commit: r188820 - head/usr.sbin/rtadvd

Warner Losh imp at FreeBSD.org
Thu Feb 19 08:30:13 PST 2009


Author: imp
Date: Thu Feb 19 16:30:11 2009
New Revision: 188820
URL: http://svn.freebsd.org/changeset/base/188820

Log:
  Properly convert bit value to a bit field.  Before we were storing
  values like 0x80 or 0x40 into a uint8_t foo:1 bitfield.  This would
  result in the bit always being 0.  One of these caused a warning for
  overflow (one that was 0x80), but the other didn't.  They were both
  wrong.
  
  This is why I hate code that mixes c struct bitfields and #defines.
  The rest of the fields accessed by the program should be audited.

Modified:
  head/usr.sbin/rtadvd/rrenum.c

Modified: head/usr.sbin/rtadvd/rrenum.c
==============================================================================
--- head/usr.sbin/rtadvd/rrenum.c	Thu Feb 19 16:16:44 2009	(r188819)
+++ head/usr.sbin/rtadvd/rrenum.c	Thu Feb 19 16:30:11 2009	(r188820)
@@ -176,9 +176,9 @@ do_use_prefix(int len, struct rr_pco_mat
 		irr->irr_u_uselen = rpu->rpu_uselen;
 		irr->irr_u_keeplen = rpu->rpu_keeplen;
 		irr->irr_raf_mask_onlink =
-			(rpu->rpu_ramask & ICMP6_RR_PCOUSE_RAFLAGS_ONLINK);
+			!!(rpu->rpu_ramask & ICMP6_RR_PCOUSE_RAFLAGS_ONLINK);
 		irr->irr_raf_mask_auto =
-			(rpu->rpu_ramask & ICMP6_RR_PCOUSE_RAFLAGS_AUTO);
+			!!(rpu->rpu_ramask & ICMP6_RR_PCOUSE_RAFLAGS_AUTO);
 		irr->irr_vltime = ntohl(rpu->rpu_vltime);
 		irr->irr_pltime = ntohl(rpu->rpu_pltime);
 		irr->irr_raf_onlink =


More information about the svn-src-head mailing list