X-Git-Url: https://git.lttng.org/?a=blobdiff_plain;f=src%2Fcommon%2Ftracker.c;h=f3a9f258b808ffa8d4b56663915c2d95855583e8;hb=3afa94aeca5a0daae40fd7b6cc96b7e4c150c7d8;hp=29249d528bc8da1f1a7b71e00381cc24b65d1678;hpb=b78dab175fd5d80ca3a851e17660b776414332a6;p=lttng-tools.git diff --git a/src/common/tracker.c b/src/common/tracker.c index 29249d528..f3a9f258b 100644 --- a/src/common/tracker.c +++ b/src/common/tracker.c @@ -59,7 +59,6 @@ static inline bool is_value_type_name( value_type == LTTNG_PROCESS_ATTR_VALUE_TYPE_GROUP_NAME; } -LTTNG_HIDDEN enum lttng_error_code process_attr_value_from_comm( enum lttng_domain_type domain, enum lttng_process_attr process_attr, @@ -184,7 +183,6 @@ error: return ret; } -LTTNG_HIDDEN const char *lttng_process_attr_to_string(enum lttng_process_attr process_attr) { switch (process_attr) { @@ -212,7 +210,6 @@ static void process_attr_tracker_value_destructor(void *ptr) process_attr_value_destroy(value); } -LTTNG_HIDDEN struct lttng_process_attr_values *lttng_process_attr_values_create(void) { struct lttng_process_attr_values *values = zmalloc(sizeof(*values)); @@ -227,7 +224,6 @@ end: return values; } -LTTNG_HIDDEN unsigned int _lttng_process_attr_values_get_count( const struct lttng_process_attr_values *values) { @@ -235,7 +231,6 @@ unsigned int _lttng_process_attr_values_get_count( &values->array); } -LTTNG_HIDDEN const struct process_attr_value *lttng_process_attr_tracker_values_get_at_index( const struct lttng_process_attr_values *values, unsigned int index) @@ -294,7 +289,6 @@ end: return ret; } -LTTNG_HIDDEN int lttng_process_attr_values_serialize( const struct lttng_process_attr_values *values, struct lttng_dynamic_buffer *buffer) @@ -325,7 +319,6 @@ end: return ret; } -LTTNG_HIDDEN ssize_t lttng_process_attr_values_create_from_buffer( enum lttng_domain_type domain, enum lttng_process_attr process_attr, @@ -345,9 +338,10 @@ ssize_t lttng_process_attr_values_create_from_buffer( header_view = lttng_buffer_view_from_view( buffer_view, 0, sizeof(*header)); - if (!header_view.data) { + if (!lttng_buffer_view_is_valid(&header_view)) { goto error; } + offset = header_view.size; header = (typeof(header)) header_view.data; @@ -370,7 +364,7 @@ ssize_t lttng_process_attr_values_create_from_buffer( value_view = lttng_buffer_view_from_view( buffer_view, offset, sizeof(*value_comm)); - if (!value_view.data) { + if (!lttng_buffer_view_is_valid(&value_view)) { goto error; } @@ -382,8 +376,13 @@ ssize_t lttng_process_attr_values_create_from_buffer( value_name_view = lttng_buffer_view_from_view( buffer_view, offset, value_comm->value.name_len); + if (!lttng_buffer_view_is_valid(&value_name_view)) { + goto error; + } + offset += value_name_view.size; } + ret_code = process_attr_value_from_comm(domain, process_attr, type, &value_comm->value.integral, &value_name_view, &value); @@ -406,7 +405,6 @@ error: return -1; } -LTTNG_HIDDEN void lttng_process_attr_values_destroy(struct lttng_process_attr_values *values) { if (!values) { @@ -416,7 +414,6 @@ void lttng_process_attr_values_destroy(struct lttng_process_attr_values *values) free(values); } -LTTNG_HIDDEN struct process_attr_value *process_attr_value_copy( const struct process_attr_value *value) { @@ -454,7 +451,6 @@ error: return NULL; } -LTTNG_HIDDEN unsigned long process_attr_value_hash(const struct process_attr_value *a) { unsigned long hash = hash_key_ulong((void *) a->type, lttng_ht_seed); @@ -485,7 +481,6 @@ unsigned long process_attr_value_hash(const struct process_attr_value *a) return hash; } -LTTNG_HIDDEN bool process_attr_tracker_value_equal(const struct process_attr_value *a, const struct process_attr_value *b) { @@ -508,7 +503,6 @@ bool process_attr_tracker_value_equal(const struct process_attr_value *a, } } -LTTNG_HIDDEN void process_attr_value_destroy(struct process_attr_value *value) { if (!value) {