cfm: Always initialize CCM "internal_ms_x" extension field.
authorBen Pfaff <blp@nicira.com>
Tue, 10 Jul 2012 21:51:29 +0000 (14:51 -0700)
committerBen Pfaff <blp@nicira.com>
Wed, 11 Jul 2012 21:44:20 +0000 (14:44 -0700)
Found by valgrind:

Syscall param socketcall.sendmsg(msg.msg_iov[i]) points to uninitialised
byte(s)
   at 0x42D3021: sendmsg (in /lib/libc-2.5.so)
   by 0x80E4D23: nl_sock_transact (netlink-socket.c:670)
   by 0x80D9086: dpif_linux_execute__ (dpif-linux.c:872)
   by 0x807D6AE: dpif_execute__ (dpif.c:957)
   by 0x807D6FE: dpif_execute (dpif.c:987)
   by 0x805DED9: send_packet (ofproto-dpif.c:4727)
   by 0x805F8E1: port_run_fast (ofproto-dpif.c:2441)
   by 0x8065CF6: run_fast (ofproto-dpif.c:926)
   by 0x805674F: ofproto_run_fast (ofproto.c:1148)
   by 0x804C957: bridge_run_fast (bridge.c:1980)
   by 0x8053F49: main (ovs-vswitchd.c:123)
  Address 0xbea0895c is on thread 1's stack

Bug #11797.
Signed-off-by: Ben Pfaff <blp@nicira.com>
lib/cfm.c

index b52f97b6ffd6b95cb1cfcbf18a0d03f05f714458..7503ad5818957e5c57334e5f6304cd11bcb5e9e8 100644 (file)
--- a/lib/cfm.c
+++ b/lib/cfm.c
@@ -462,6 +462,8 @@ cfm_compose_ccm(struct cfm *cfm, struct ofpbuf *packet,
     if (cfm->ccm_interval == 0) {
         assert(cfm->extended);
         ccm->interval_ms_x = htons(cfm->ccm_interval_ms);
+    } else {
+        ccm->interval_ms_x = htons(0);
     }
 
     if (hmap_is_empty(&cfm->remote_mps)) {