Index: vrrp_packet.cc
===================================================================
--- vrrp_packet.cc	(revision 506)
+++ vrrp_packet.cc	(working copy)
@@ -181,6 +181,12 @@
     return _data.size();
 }
 
+void
+VrrpPacket::set_size(uint32_t size)
+{
+    _data.resize(size);
+}
+
 const PAYLOAD&
 VrrpPacket::data() const
 {
Index: vrrp.cc
===================================================================
--- vrrp.cc	(revision 506)
+++ vrrp.cc	(working copy)
@@ -323,6 +323,7 @@
 void
 Vrrp::prepare_advertisement(uint32_t priority)
 {
+    _adv_packet.set_size(VRRP_MAX_PACKET_SIZE);
     _adv_packet.set_source(_vif.addr());
     _adv_packet.set_vrid(_vrid);
     _adv_packet.set_priority(priority);
Index: vrrp_packet.hh
===================================================================
--- vrrp_packet.hh	(revision 506)
+++ vrrp_packet.hh	(working copy)
@@ -183,6 +183,13 @@
     uint32_t	    size() const;
 
     /**
+     * Set the packet size.
+     *
+     * @param packet size.
+     */
+    void set_size(uint32_t size);
+
+    /**
      * Set multiple IPs from a container into the VRRP header.
      *
      * @param ips collection of IP addresses to add to the VRRP header.
