X-Git-Url: https://git.lttng.org/?p=lttng-tools.git;a=blobdiff_plain;f=src%2Fcommon%2Ftracker.c;h=29249d528bc8da1f1a7b71e00381cc24b65d1678;hp=532a924b56a772b3d55d11e611028ebf7267a7fe;hb=b78dab175fd5d80ca3a851e17660b776414332a6;hpb=159b042f34366d0fde5dcd73b4231c558922a664 diff --git a/src/common/tracker.c b/src/common/tracker.c index 532a924b5..29249d528 100644 --- a/src/common/tracker.c +++ b/src/common/tracker.c @@ -85,6 +85,7 @@ enum lttng_error_code process_attr_value_from_comm( name = strdup(value_view->data); if (!name) { ret = LTTNG_ERR_NOMEM; + goto error; } } @@ -102,10 +103,12 @@ enum lttng_error_code process_attr_value_from_comm( } /* Only expect a payload for name value types. */ - if (is_value_type_name(value_type) && value_view->size == 0) { + if (is_value_type_name(value_type) && + (!value_view || value_view->size == 0)) { ret = LTTNG_ERR_INVALID_PROTOCOL; goto error; - } else if (!is_value_type_name(value_type) && value_view->size != 0) { + } else if (!is_value_type_name(value_type) && value_view && + value_view->size != 0) { ret = LTTNG_ERR_INVALID_PROTOCOL; goto error; } @@ -173,6 +176,7 @@ enum lttng_error_code process_attr_value_from_comm( *_value = value; value = NULL; + free(name); return LTTNG_OK; error: free(name);