lb plugin - fix format() type mismatches 55/8755/2
authorGabriel Ganne <gabriel.ganne@enea.com>
Wed, 11 Oct 2017 12:35:55 +0000 (14:35 +0200)
committerGabriel Ganne <gabriel.ganne@enea.com>
Mon, 16 Oct 2017 07:17:32 +0000 (09:17 +0200)
* (vip - lbm->vips) is u64; change format from [%u] to [%lu]
* vip->plen is u8, but format looks for u32; add exlicit cast
  (this cast was done implicitely)

On ARM platforms, these prevent a loop in the second call to
format_white_space() which would get an invalid (huge) indent value;
the result *looked like* an infinite loop.

Change-Id: I675ef2f98e4ba3d9e8aef12022d38b1d22981da8
Signed-off-by: Gabriel Ganne <gabriel.ganne@enea.com>
src/plugins/lb/lb.c

index 0bd2ff5..fee8805 100644 (file)
@@ -130,11 +130,12 @@ u8 *format_lb_vip_detailed (u8 * s, va_list * args)
   lb_vip_t *vip = va_arg (*args, lb_vip_t *);
   u32 indent = format_get_indent (s);
 
-  s = format(s, "%U %U [%u] %U%s\n"
+  s = format(s, "%U %U [%lu] %U%s\n"
                    "%U  new_size:%u\n",
                   format_white_space, indent,
                   format_lb_vip_type, vip->type,
-                  vip - lbm->vips, format_ip46_prefix, &vip->prefix, vip->plen, IP46_TYPE_ANY,
+                  vip - lbm->vips,
+                  format_ip46_prefix, &vip->prefix, (u32) vip->plen, IP46_TYPE_ANY,
                   (vip->flags & LB_VIP_FLAGS_USED)?"":" removed",
                   format_white_space, indent,
                   vip->new_flow_table_mask + 1);