[DTrace-devel] [PATCH 2/2] Fix dt_print_visit() to compile also on OL7
Alan Maguire
alan.maguire at oracle.com
Fri Dec 22 09:58:24 UTC 2023
On 22/12/2023 02:34, eugene.loh--- via DTrace-devel wrote:
> From: Eugene Loh <eugene.loh at oracle.com>
>
> Signed-off-by: Eugene Loh <eugene.loh at oracle.com>
Reviewed-by: Alan Maguire <alan.maguire at oracle.com>
> ---
> libdtrace/dt_printf.c | 8 ++------
> 1 file changed, 2 insertions(+), 6 deletions(-)
>
> diff --git a/libdtrace/dt_printf.c b/libdtrace/dt_printf.c
> index 409a34df..2658c6a8 100644
> --- a/libdtrace/dt_printf.c
> +++ b/libdtrace/dt_printf.c
> @@ -1979,7 +1979,7 @@ dt_print_visit(const char *name, ctf_id_t type, unsigned long offset,
> const void *data = (char *)dva->dv_data + offset/NBBY;
> const char *membername = NULL;
> ssize_t typesize, asize = 0;
> - char *typename = NULL;
> + char typename[DT_TYPE_NAMELEN];
> char *datastr = NULL;
> int64_t intdata = 0;
> const char *ename;
> @@ -1998,8 +1998,7 @@ dt_print_visit(const char *name, ctf_id_t type, unsigned long offset,
> dva->dv_startindent + depth, "");
> return -1;
> }
> - typename = ctf_type_aname(dva->dv_ctfp, type);
> - if (!typename) {
> + if (ctf_type_name(dva->dv_ctfp, type, typename, sizeof(typename)) == NULL) {
> dt_dprintf("error retrieving type name for [%ld]: %s\n",
> type, ctf_errmsg(ctf_errno(dva->dv_ctfp)));
> return dt_set_errno(dva->dv_dtp, EDT_CTF);
> @@ -2164,7 +2163,6 @@ dt_print_visit(const char *name, ctf_id_t type, unsigned long offset,
> typename, (uintptr_t)*(void **)data);
> break;
> default:
> - free(typename);
> return 0;
> }
> doprint:
> @@ -2173,7 +2171,6 @@ doprint:
> ret = dt_set_errno(dva->dv_dtp, EDT_NOMEM);
> goto err;
> }
> - free(typename);
>
> /* format is
> * [.<membername> = ](<type>)value,
> @@ -2231,7 +2228,6 @@ doprint:
> }
> return 0;
> err:
> - free(typename);
> free(datastr);
> return ret;
> }
More information about the DTrace-devel
mailing list