iproute2/include
Julien Fortin 429f314ef7 lib: json_print: rework 'new_json_obj' drop FILE* argument
As Stephen Hemminger mentioned on the last submission the new_json_obj
function is always called with fp == stdout, so right now, there's no
need of this extra argument.

The background for the rework is the following:
The ip monitor didn't call `new_json_obj` (even for in non json context),
so the static FILE* _fp variable wasn't initialized, thus raising a
SIGSEGV in ipaddress.c. This patch should fix this issue for good, new
paths won't have to call `new_json_obj`.

How to reproduce:

$ ip -t mon label link
(gdb) bt
.#0  _IO_vfprintf_internal (s=s@entry=0x0, format=format@entry=0x45460d “%d: “, ap=ap@entry=0x7fffffff7f18) at vfprintf.c:1278
.#1  0x0000000000451310 in color_fprintf (fp=0x0, attr=<optimized out>, fmt=0x45460d “%d: “) at color.c:108
.#2  0x000000000044a856 in print_color_int (t=t@entry=PRINT_ANY, color=color@entry=4294967295, key=key@entry=0x4545fc “ifindex”,
    fmt=fmt@entry=0x45460d “%d: “, value=<optimized out>) at ip_print.c:132
.#3  0x000000000040ccd2 in print_int (value=<optimized out>, fmt=0x45460d “%d: “, key=0x4545fc “ifindex”, t=PRINT_ANY) at ip_common.h:189
.#4  print_linkinfo (who=<optimized out>, n=0x7fffffffa380, arg=0x7ffff77a82a0 <_IO_2_1_stdout_>) at ipaddress.c:1107
.#5  0x0000000000422e13 in accept_msg (who=0x7fffffff8320, ctrl=0x7fffffff8310, n=0x7fffffffa380, arg=0x7ffff77a82a0 <_IO_2_1_stdout_>) at ipmonitor.c:89
.#6  0x000000000044c58f in rtnl_listen (rtnl=0x672160 <rth>, handler=handler@entry=0x422c70 <accept_msg>, jarg=0x7ffff77a82a0 <_IO_2_1_stdout_>)
    at libnetlink.c:761
.#7  0x00000000004233db in do_ipmonitor (argc=<optimized out>, argv=0x7fffffffe5a0) at ipmonitor.c:310
.#8  0x0000000000408f74 in do_cmd (argv0=0x7fffffffe7f5 “mon”, argc=3, argv=0x7fffffffe588) at ip.c:116
.#9  0x0000000000408a94 in main (argc=4, argv=0x7fffffffe580) at ip.c:311

Fixes: 6377572f ("ip: ip_print: add new API to print JSON or regular format output")
Reported-by: David Ahern <dsa@cumulusnetworks.com>
Signed-off-by: Julien Fortin <julien@cumulusnetworks.com>
2017-09-29 10:10:47 -07:00
..
iptables Update to current iptables headers 2016-01-03 15:14:27 -08:00
libiptc Update to current iptables headers 2016-01-03 15:14:27 -08:00
linux BPF: update headers from 4.14-rc1 2017-09-20 18:00:55 -07:00
netinet ss: report ecnseen 2011-11-23 14:51:54 -08:00
rdma rdma: Add basic infrastructure for RDMA tool 2017-08-21 17:07:44 -07:00
SNAPSHOT.h v4.13.0 2017-09-05 09:39:32 -07:00
bpf_api.h lwt: BPF support for LWT 2016-12-12 15:32:54 -08:00
bpf_elf.h bpf: support loading map in map from obj 2017-07-18 17:20:45 -07:00
bpf_scm.h tc, bpf: finalize eBPF support for cls and act front-end 2015-04-10 13:31:19 -07:00
bpf_util.h bpf: consolidate dumps to use bpf_dump_prog_info 2017-09-05 09:26:34 -07:00
color.h color: add new COLOR_NONE and disable_color function 2017-08-17 18:02:40 -07:00
dlfcn.h remove unnecessary extern 2015-08-13 14:09:58 -07:00
ip6tables.h Update to current iptables headers 2016-01-03 15:14:27 -08:00
iptables.h Update to current iptables headers 2016-01-03 15:14:27 -08:00
json_print.h lib: json_print: rework 'new_json_obj' drop FILE* argument 2017-09-29 10:10:47 -07:00
json_writer.h json_writer: add new json handlers (null, float with format, lluint, hu) 2017-08-17 18:02:40 -07:00
libgenl.h libgenl: introduce genl_init_handle 2016-08-17 13:59:21 -07:00
libnetlink.h iproute: Add support for extended ack to rtnl_talk 2017-08-04 09:54:00 -07:00
list.h list: add list_add_tail helper 2016-04-19 08:01:05 -07:00
ll_map.h remove unnecessary extern 2015-08-13 14:09:58 -07:00
names.h tc class: Ignore if default class name file does not exist 2015-04-07 08:31:56 -07:00
namespace.h remove unnecessary extern 2015-08-13 14:09:58 -07:00
rt_names.h make the addr argument of ll_addr_n2a const 2015-03-24 15:45:23 -07:00
rtm_map.h ip, realms: also allow to pass in raw realms value 2015-10-22 23:40:51 -07:00
utils.h Merge branch 'master' into net-next 2017-09-01 12:17:48 -07:00
xt-internal.h Breakage noticed when debian upgraded to xtables (iptables > 1.4.1) 2009-02-19 09:02:13 -08:00
xtables.h Update to current iptables headers 2016-01-03 15:14:27 -08:00