[systemd-devel] [PATCH 5/6] Add hexstr function

Marc-Antoine Perennou Marc-Antoine at Perennou.com
Mon Feb 11 15:21:19 PST 2013


On 12 February 2013 00:14, Oleksii Shevchuk <alxchk at gmail.com> wrote:

> Function that converts byte array to hex string
> ---
>  src/shared/util.c | 23 +++++++++++++++++++++++
>  src/shared/util.h |  1 +
>  2 files changed, 24 insertions(+)
>
> diff --git a/src/shared/util.c b/src/shared/util.c
> index 24f9e7e..6dbfe29 100644
> --- a/src/shared/util.c
> +++ b/src/shared/util.c
> @@ -1368,6 +1368,29 @@ char hexchar(int x) {
>          return table[x & 15];
>  }
>
> +char * hexstr (const uint8_t *in, size_t count)
> +{
> +        char *r, *i = NULL;
> +
> +        if (!in || !count)
> +                goto finish;
> +
> +        r = i = new(char, count * 2 + 1);
> +        if (! r)
> +                goto finish;
> +
> +        while (count--) {
> +                *i++ = hexchar(*in >> 4);
> +                *i++ = hexchar(*in);
> +                ++in;
> +        }
> +
> +        *i = '\0';
> +
> + finish:
> +        return r;
> +}
> +
>  int unhexchar(char c) {
>
>          if (c >= '0' && c <= '9')
> diff --git a/src/shared/util.h b/src/shared/util.h
> index cd13457..fe85fa8 100644
> --- a/src/shared/util.h
> +++ b/src/shared/util.h
> @@ -211,6 +211,7 @@ int get_process_uid(pid_t pid, uid_t *uid);
>  int get_process_gid(pid_t pid, gid_t *gid);
>
>  char hexchar(int x);
> +char * hexstr (const uint8_t *in, size_t count);
>  int unhexchar(char c);
>  char octchar(int x);
>  int unoctchar(char c);
> --
> 1.8.1.2
>
> _______________________________________________
> systemd-devel mailing list
> systemd-devel at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/systemd-devel
>

Hi,

I think you may be returning an unitialized "r" with your first "goto
finish", you should set it to NULL like you do for i
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/systemd-devel/attachments/20130212/fe9c0c3a/attachment-0001.html>


More information about the systemd-devel mailing list