Fix: userspace-probe: unreported error on string copy error
[lttng-tools.git] / src / common / session-descriptor.c
index f111320e44c564b7b202cf39e2bc1260da85ecae..757a82a5d2414f45743127e379e0405ead17e9b7 100644 (file)
@@ -10,7 +10,6 @@
 #include <common/defaults.h>
 #include <common/error.h>
 #include <time.h>
-#include <assert.h>
 #include <stdio.h>
 
 struct lttng_session_descriptor_network_location {
@@ -616,12 +615,12 @@ ssize_t lttng_session_descriptor_create_from_buffer(
 
        current_view = lttng_buffer_view_from_view(payload, offset,
                        sizeof(*base_header));
-       base_header = (typeof(base_header)) current_view.data;
-       if (!base_header) {
+       if (!lttng_buffer_view_is_valid(&current_view)) {
                ret = -1;
                goto end;
        }
 
+       base_header = (typeof(base_header)) current_view.data;
        switch (base_header->type) {
        case LTTNG_SESSION_DESCRIPTOR_TYPE_REGULAR:
        case LTTNG_SESSION_DESCRIPTOR_TYPE_SNAPSHOT:
@@ -632,12 +631,12 @@ ssize_t lttng_session_descriptor_create_from_buffer(
 
                current_view = lttng_buffer_view_from_view(payload, offset,
                                sizeof(*live_header));
-               live_header = (typeof(live_header)) current_view.data;
-               if (!live_header) {
+               if (!lttng_buffer_view_is_valid(&current_view)) {
                        ret = -1;
                        goto end;
                }
 
+               live_header = (typeof(live_header)) current_view.data;
                live_timer_us = live_header->live_timer_us;
                break;
        }
@@ -674,12 +673,12 @@ ssize_t lttng_session_descriptor_create_from_buffer(
        /* Map the name. */
        current_view = lttng_buffer_view_from_view(payload, offset,
                        base_header->name_len);
-       name = current_view.data;
-       if (!name) {
+       if (!lttng_buffer_view_is_valid(&current_view)) {
                ret = -1;
                goto end;
        }
 
+       name = current_view.data;
        if (base_header->name_len == 1 ||
                        name[base_header->name_len - 1] ||
                        strlen(name) != base_header->name_len - 1) {
@@ -705,11 +704,12 @@ skip_name:
                /* Map a URI. */
                current_view = lttng_buffer_view_from_view(payload,
                                offset, sizeof(*uri));
-               uri = (typeof(uri)) current_view.data;
-               if (!uri) {
+               if (!lttng_buffer_view_is_valid(&current_view)) {
                        ret = -1;
                        goto end;
                }
+
+               uri = (typeof(uri)) current_view.data;
                uris[i] = zmalloc(sizeof(*uri));
                if (!uris[i]) {
                        ret = -1;
@@ -1042,7 +1042,7 @@ enum lttng_error_code lttng_session_descriptor_set_default_output(
                                goto end;
                        }
                }
-               assert(descriptor->name);
+               LTTNG_ASSERT(descriptor->name);
                ret = snprintf(local_uri, sizeof(local_uri),
                                "file://%s/%s/%s%s",
                                absolute_home_path,
This page took 0.024105 seconds and 4 git commands to generate.