lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20181119171842.1d1e94ad@xeon-e3>
Date:   Mon, 19 Nov 2018 17:18:42 -0800
From:   Stephen Hemminger <stephen@...workplumber.org>
To:     Jakub Kicinski <jakub.kicinski@...ronome.com>
Cc:     dsahern@...il.com, oss-drivers@...ronome.com,
        netdev@...r.kernel.org
Subject: Re: [PATCH iproute2-next 2/8] json: add %hhu helpers

On Mon, 19 Nov 2018 15:03:29 -0800
Jakub Kicinski <jakub.kicinski@...ronome.com> wrote:

> Add helpers for printing char-size values.
> 
> Signed-off-by: Jakub Kicinski <jakub.kicinski@...ronome.com>
> Reviewed-by: Quentin Monnet <quentin.monnet@...ronome.com>
> ---
>  include/json_print.h  |  1 +
>  include/json_writer.h |  2 ++
>  lib/json_print.c      |  1 +
>  lib/json_writer.c     | 11 +++++++++++
>  4 files changed, 15 insertions(+)
> 
> diff --git a/include/json_print.h b/include/json_print.h
> index 218da31a73fe..25954070db27 100644
> --- a/include/json_print.h
> +++ b/include/json_print.h
> @@ -64,6 +64,7 @@ _PRINT_FUNC(null, const char*);
>  _PRINT_FUNC(string, const char*);
>  _PRINT_FUNC(uint, unsigned int);
>  _PRINT_FUNC(u64, uint64_t);
> +_PRINT_FUNC(hhu, unsigned char);
>  _PRINT_FUNC(hu, unsigned short);
>  _PRINT_FUNC(hex, unsigned int);
>  _PRINT_FUNC(0xhex, unsigned long long int);
> diff --git a/include/json_writer.h b/include/json_writer.h
> index 0c8831c1136d..354c27541e89 100644
> --- a/include/json_writer.h
> +++ b/include/json_writer.h
> @@ -38,6 +38,7 @@ void jsonw_float_fmt(json_writer_t *self, const char *fmt, double num);
>  void jsonw_uint(json_writer_t *self, unsigned int number);
>  void jsonw_u64(json_writer_t *self, uint64_t number);
>  void jsonw_xint(json_writer_t *self, uint64_t number);
> +void jsonw_hhu(json_writer_t *self, unsigned char num);
>  void jsonw_hu(json_writer_t *self, unsigned short number);
>  void jsonw_int(json_writer_t *self, int number);
>  void jsonw_s64(json_writer_t *self, int64_t number);
> @@ -52,6 +53,7 @@ void jsonw_float_field(json_writer_t *self, const char *prop, double num);
>  void jsonw_uint_field(json_writer_t *self, const char *prop, unsigned int num);
>  void jsonw_u64_field(json_writer_t *self, const char *prop, uint64_t num);
>  void jsonw_xint_field(json_writer_t *self, const char *prop, uint64_t num);
> +void jsonw_hhu_field(json_writer_t *self, const char *prop, unsigned char num);
>  void jsonw_hu_field(json_writer_t *self, const char *prop, unsigned short num);
>  void jsonw_int_field(json_writer_t *self, const char *prop, int num);
>  void jsonw_s64_field(json_writer_t *self, const char *prop, int64_t num);
> diff --git a/lib/json_print.c b/lib/json_print.c
> index f7ef41c1570f..4f5fef195fde 100644
> --- a/lib/json_print.c
> +++ b/lib/json_print.c
> @@ -118,6 +118,7 @@ void close_json_array(enum output_type type, const char *str)
>  	}
>  _PRINT_FUNC(int, int);
>  _PRINT_FUNC(s64, int64_t);
> +_PRINT_FUNC(hhu, unsigned char);
>  _PRINT_FUNC(hu, unsigned short);
>  _PRINT_FUNC(uint, unsigned int);
>  _PRINT_FUNC(u64, uint64_t);
> diff --git a/lib/json_writer.c b/lib/json_writer.c
> index 68890b34ee92..46eff6ad9828 100644
> --- a/lib/json_writer.c
> +++ b/lib/json_writer.c
> @@ -211,6 +211,11 @@ void jsonw_float(json_writer_t *self, double num)
>  	jsonw_printf(self, "%g", num);
>  }
>  
> +void jsonw_hhu(json_writer_t *self, unsigned char num)
> +{
> +	jsonw_printf(self, "%hhu", num);
> +}
> +
>  void jsonw_hu(json_writer_t *self, unsigned short num)
>  {
>  	jsonw_printf(self, "%hu", num);
> @@ -288,6 +293,12 @@ void jsonw_xint_field(json_writer_t *self, const char *prop, uint64_t num)
>  	jsonw_xint(self, num);
>  }
>  
> +void jsonw_hhu_field(json_writer_t *self, const char *prop, unsigned char num)
> +{
> +	jsonw_name(self, prop);
> +	jsonw_hhu(self, num);
> +}
> +
>  void jsonw_hu_field(json_writer_t *self, const char *prop, unsigned short num)
>  {
>  	jsonw_name(self, prop);

Do you really need this? it turns out that because of C type conversions print_uint should just
work?

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ