0 is not NULL (at least not in all cases), passing 0 into a variadic
function in a place where the consumer reads it as pointer might
leave parts of the pointer uninitilized and hence filled with random
data.
It seems that this used to work with gcc, but clang seems to treat the
0 in those places as a 32bit integer.
Type: fix
Signed-off-by: Ivan Shvedunov <ivan4th@gmail.com>
Signed-off-by: Andreas Schultz <andreas.schultz@travelping.com>
Change-Id: I37d975eef5a1ad98fbfb65ebe47d73458aafea00
- fformat (stdout, "%U", format_device, 0 /* header */ , 0 /* verbose */ );
+ fformat (stdout, "%U", format_device, NULL /* header */, 0 /* verbose */);
/* *INDENT-OFF* */
pool_foreach (dev, mm->devices)
{
/* *INDENT-OFF* */
pool_foreach (dev, mm->devices)
{
while (count--)
{
e = vec_elt_at_index (lm->entries, i);
while (count--)
{
e = vec_elt_at_index (lm->entries, i);
- vlib_cli_output (vm, "%U %-10U %-14U %v",
- format_time_float, 0, e->timestamp + time_offset,
- format_vlib_log_level, e->level,
- format_vlib_log_class, e->class, e->string);
+ vlib_cli_output (vm, "%U %-10U %-14U %v", format_time_float, NULL,
+ e->timestamp + time_offset, format_vlib_log_level,
+ e->level, format_vlib_log_class, e->class, e->string);
i = (i + 1) % lm->size;
}
i = (i + 1) % lm->size;
}
{
static u8 *lv;
vec_reset_length (lv);
{
static u8 *lv;
vec_reset_length (lv);
- lv = format (lv, "%U[%d]: %v",
- format_timeval, 0 /* current bat-time */ ,
- 0 /* current bat-format */ ,
+ lv = format (lv, "%U[%d]: %v", format_timeval,
+ NULL /* current bat-format */, 0 /* current bat-time */,
cli_file_index, cf->current_command);
if ((vec_len (cf->current_command) > 0) &&
(cf->current_command[vec_len (cf->current_command) - 1] != '\n'))
cli_file_index, cf->current_command);
if ((vec_len (cf->current_command) > 0) &&
(cf->current_command[vec_len (cf->current_command) - 1] != '\n'))
{
u8 *lv = 0;
lv = format (lv, "%U: ***** Startup Config *****\n%v",
{
u8 *lv = 0;
lv = format (lv, "%U: ***** Startup Config *****\n%v",
- format_timeval, 0 /* current bat-time */ ,
- 0 /* current bat-format */ ,
- buf);
+ format_timeval, NULL /* current bat-format */,
+ 0 /* current bat-time */, buf);
{
int rv __attribute__ ((unused)) =
write (um->log_fd, lv, vec_len (lv));
}
vec_reset_length (lv);
{
int rv __attribute__ ((unused)) =
write (um->log_fd, lv, vec_len (lv));
}
vec_reset_length (lv);
- lv = format (lv, "%U: ***** End Startup Config *****\n",
- format_timeval, 0 /* current bat-time */ ,
- 0 /* current bat-format */ );
+ lv =
+ format (lv, "%U: ***** End Startup Config *****\n", format_timeval,
+ NULL /* current bat-format */, 0 /* current bat-time */);
{
int rv __attribute__ ((unused)) =
write (um->log_fd, lv, vec_len (lv));
{
int rv __attribute__ ((unused)) =
write (um->log_fd, lv, vec_len (lv));
{
u8 *lv = 0;
lv = format (0, "%U: ***** Start: PID %d *****\n",
{
u8 *lv = 0;
lv = format (0, "%U: ***** Start: PID %d *****\n",
- format_timeval, 0 /* current bat-time */ ,
- 0 /* current bat-format */ ,
- getpid ());
+ format_timeval, NULL /* current bat-format */,
+ 0 /* current bat-time */, getpid ());
{
int rv __attribute__ ((unused)) =
write (um->log_fd, lv, vec_len (lv));
{
int rv __attribute__ ((unused)) =
write (um->log_fd, lv, vec_len (lv));
- vlib_cli_output (vm, "%U", format_app_worker_listener, 0 /* header */ ,
+ vlib_cli_output (vm, "%U", format_app_worker_listener, NULL /* header */,
0, 0, verbose);
return;
}
0, 0, verbose);
return;
}