On Fri, 19 Oct 2018 17:42:55 +0200
Phil Sutter <[email protected]> wrote:

> Value of 'default' is assumed to be hexadecimal when parsing, so
> consequently it should be printed in hex as well. This is a regression
> introduced when adding JSON output.
> 
> Fixes: f354fa6aa5ff0 ("tc: jsonify htb qdisc")
> Signed-off-by: Phil Sutter <[email protected]>
> ---
>  tc/q_htb.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/tc/q_htb.c b/tc/q_htb.c
> index c8b2941d945b7..c69485db8ef7d 100644
> --- a/tc/q_htb.c
> +++ b/tc/q_htb.c
> @@ -332,7 +332,7 @@ static int htb_print_opt(struct qdisc_util *qu, FILE *f, 
> struct rtattr *opt)
>               if (RTA_PAYLOAD(tb[TCA_HTB_INIT])  < sizeof(*gopt)) return -1;
>  
>               print_int(PRINT_ANY, "r2q", "r2q %d", gopt->rate2quantum);
> -             print_uint(PRINT_ANY, "default", " default %u", gopt->defcls);
> +             print_uint(PRINT_ANY, "default", " default %x", gopt->defcls);
>               print_uint(PRINT_ANY, "direct_packets_stat",
>                          " direct_packets_stat %u", gopt->direct_pkts);
>               if (show_details) {

The output should be in hex. Because you used print_uint it will still be in 
decimal
in the JSON output.  The correct fix here is to use print_0xhex instead.

Please fix that, test it, and resubmit.

Reply via email to