Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package libtraceevent for openSUSE:Factory checked in at 2022-08-31 18:08:51 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/libtraceevent (Old) and /work/SRC/openSUSE:Factory/.libtraceevent.new.2083 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Package is "libtraceevent" Wed Aug 31 18:08:51 2022 rev:6 rq:1000304 version:1.6.2 Changes: -------- --- /work/SRC/openSUSE:Factory/libtraceevent/libtraceevent.changes 2022-04-06 21:52:35.834810001 +0200 +++ /work/SRC/openSUSE:Factory/.libtraceevent.new.2083/libtraceevent.changes 2022-08-31 18:08:58.155372479 +0200 @@ -1,0 +2,10 @@ +Mon Aug 29 09:56:33 UTC 2022 - Jan Engelhardt <jengelh@inai.de> + +- Update to release 1.6.2 + * Add API tep_get_function_count() + * Reset right arg when copying TEP_PRINT_OP + * Reset field properly in event_read_fields() + * Fix memleak in make_bprint_args() + * Add processing of __get_sockaddr() and __get_sockaddr_rel() + +------------------------------------------------------------------- Old: ---- libtraceevent-1.5.3.tar.gz New: ---- libtraceevent-1.6.2.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ libtraceevent.spec ++++++ --- /var/tmp/diff_new_pack.VN98HX/_old 2022-08-31 18:08:58.675373855 +0200 +++ /var/tmp/diff_new_pack.VN98HX/_new 2022-08-31 18:08:58.679373865 +0200 @@ -22,7 +22,7 @@ %define sodname %{dname}%{sonum} Name: libtraceevent -Version: 1.5.3 +Version: 1.6.2 Release: 0 Summary: Linux kernel trace event library License: GPL-2.0-only AND LGPL-2.1-only ++++++ libtraceevent-1.5.3.tar.gz -> libtraceevent-1.6.2.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libtraceevent-1.5.3/Documentation/libtraceevent-func_apis.txt new/libtraceevent-1.6.2/Documentation/libtraceevent-func_apis.txt --- old/libtraceevent-1.5.3/Documentation/libtraceevent-func_apis.txt 2022-03-25 00:40:51.000000000 +0100 +++ new/libtraceevent-1.6.2/Documentation/libtraceevent-func_apis.txt 2022-07-14 19:26:50.000000000 +0200 @@ -4,7 +4,8 @@ NAME ---- tep_find_function, tep_find_function_address, tep_set_function_resolver, -tep_reset_function_resolver, tep_register_function, tep_register_print_string - +tep_reset_function_resolver, tep_register_function, tep_register_print_string, +tep_get_function_count - function related tep APIs SYNOPSIS @@ -20,6 +21,7 @@ unsigned long long *tep_find_function_address*(struct tep_handle pass:[*]_tep_, unsigned long long _addr_); int *tep_register_function*(struct tep_handle pass:[*]_tep_, char pass:[*]_name_, unsigned long long _addr_, char pass:[*]_mod_); int *tep_register_print_string*(struct tep_handle pass:[*]_tep_, const char pass:[*]_fmt_, unsigned long long _addr_); +int *tep_get_function_count*(struct tep_handle *_tep_) -- DESCRIPTION @@ -75,6 +77,7 @@ context. The _fmt_ is the string to register, it is copied internally. The _addr_ is the address the string was located at. +*tep_get_function_count*() returns the number of registered functions in a tep handler. RETURN VALUE ------------ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libtraceevent-1.5.3/Makefile new/libtraceevent-1.6.2/Makefile --- old/libtraceevent-1.5.3/Makefile 2022-03-25 00:40:51.000000000 +0100 +++ new/libtraceevent-1.6.2/Makefile 2022-07-14 19:26:50.000000000 +0200 @@ -1,8 +1,8 @@ # SPDX-License-Identifier: GPL-2.0 # libtraceevent version EP_VERSION = 1 -EP_PATCHLEVEL = 5 -EP_EXTRAVERSION = 3 +EP_PATCHLEVEL = 6 +EP_EXTRAVERSION = 2 EVENT_PARSE_VERSION = $(EP_VERSION).$(EP_PATCHLEVEL).$(EP_EXTRAVERSION) MAKEFLAGS += --no-print-directory diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libtraceevent-1.5.3/include/traceevent/event-parse.h new/libtraceevent-1.6.2/include/traceevent/event-parse.h --- old/libtraceevent-1.5.3/include/traceevent/event-parse.h 2022-03-25 00:40:51.000000000 +0100 +++ new/libtraceevent-1.6.2/include/traceevent/event-parse.h 2022-07-14 19:26:50.000000000 +0200 @@ -566,6 +566,8 @@ struct tep_format_field **tep_event_common_fields(struct tep_event *event); struct tep_format_field **tep_event_fields(struct tep_event *event); +int tep_get_function_count(struct tep_handle *tep); + enum tep_endian { TEP_LITTLE_ENDIAN = 0, TEP_BIG_ENDIAN diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libtraceevent-1.5.3/src/event-parse-api.c new/libtraceevent-1.6.2/src/event-parse-api.c --- old/libtraceevent-1.5.3/src/event-parse-api.c 2022-03-25 00:40:51.000000000 +0100 +++ new/libtraceevent-1.6.2/src/event-parse-api.c 2022-07-14 19:26:50.000000000 +0200 @@ -51,6 +51,20 @@ } /** + * tep_get_events_count - get the number of defined events + * @tep: a handle to the tep_handle + * + * This returns number of elements in event array + * If @tep is NULL, 0 is returned. + */ +int tep_get_function_count(struct tep_handle *tep) +{ + if (tep) + return tep->func_count; + return 0; +} + +/** * tep_set_flag - set event parser flag * @tep: a handle to the tep_handle * @flag: flag, or combination of flags to be set diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libtraceevent-1.5.3/src/event-parse.c new/libtraceevent-1.6.2/src/event-parse.c --- old/libtraceevent-1.5.3/src/event-parse.c 2022-03-25 00:40:51.000000000 +0100 +++ new/libtraceevent-1.6.2/src/event-parse.c 2022-07-14 19:26:50.000000000 +0200 @@ -739,8 +739,11 @@ if (errno) goto out; - if (n != 2 || !func_end) + if (n != 2 || !func_end) { + tep_warning("Failed to parse kallsyms n=%d func_end=%d", + n, func_end); goto out; + } func = line + func_start; /* @@ -1902,6 +1905,7 @@ *fields = field; fields = &field->next; + field = NULL; } while (1); @@ -2317,6 +2321,7 @@ arg->type = TEP_PRINT_OP; arg->op.op = token; arg->op.left = left; + arg->op.right = NULL; arg->op.prio = 0; /* it will set arg->op.right */ @@ -2422,6 +2427,7 @@ arg->type = TEP_PRINT_OP; arg->op.op = token; arg->op.left = left; + arg->op.right = NULL; arg->op.prio = 0; @@ -2551,6 +2557,10 @@ int len; len = strlen(type); + if (len < 2) { + do_warning("invalid type: %s", type); + return val; + } if (pointer) { @@ -3475,7 +3485,9 @@ return process_bitmask(event, arg, tok); } if (strcmp(token, "__get_dynamic_array") == 0 || - strcmp(token, "__get_rel_dynamic_array") == 0) { + strcmp(token, "__get_rel_dynamic_array") == 0 || + strcmp(token, "__get_sockaddr") == 0 || + strcmp(token, "__get_sockaddr_rel") == 0) { free_token(token); return process_dynamic_array(event, arg, tok); } @@ -4908,8 +4920,10 @@ arg->next = NULL; arg->type = TEP_PRINT_BSTRING; arg->string.string = strdup(bptr); - if (!arg->string.string) + if (!arg->string.string) { + free(arg); goto out_free; + } bptr += strlen(bptr) + 1; *next = arg; next = &arg->next; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libtraceevent-1.5.3/src/kbuffer-parse.c new/libtraceevent-1.6.2/src/kbuffer-parse.c --- old/libtraceevent-1.5.3/src/kbuffer-parse.c 2022-03-25 00:40:51.000000000 +0100 +++ new/libtraceevent-1.6.2/src/kbuffer-parse.c 2022-07-14 19:26:50.000000000 +0200 @@ -14,6 +14,9 @@ #define COMMIT_MASK ((1 << 27) - 1) +/* Absolute time stamps do not have the 5 MSB, take from the real time stamp */ +#define TS_MSB (0xf8ULL << 56) + enum { KBUFFER_FL_HOST_BIG_ENDIAN = (1<<0), KBUFFER_FL_BIG_ENDIAN = (1<<1), @@ -347,7 +350,7 @@ translate_data(struct kbuffer *kbuf, void *data, void **rptr, unsigned long long *delta, int *length) { - unsigned long long extend; + unsigned long long extend, msb = 0; unsigned int type_len_ts; unsigned int type_len; @@ -362,13 +365,15 @@ *length = read_4(kbuf, data); break; - case KBUFFER_TYPE_TIME_EXTEND: case KBUFFER_TYPE_TIME_STAMP: + msb = kbuf->timestamp & TS_MSB; + /* fall through */ + case KBUFFER_TYPE_TIME_EXTEND: extend = read_4(kbuf, data); data += 4; extend <<= TS_SHIFT; extend += *delta; - *delta = extend; + *delta = extend | msb; *length = 0; break;