From c16fb81a23dcfa6ab8331efe1c98a86e4444040d Mon Sep 17 00:00:00 2001 From: Simon Marchi Date: Thu, 9 Apr 2020 14:27:39 -0400 Subject: [PATCH] Fix: src.text.dmesg: add missing assignment of `status` on error path The error path under `if (!*msg)`, originally at line 789, is missing assigning an error status to the `status` variable, fix it. Change-Id: I2b47c6ce7c6099a6db68c4da108d7c0886c7177e Signed-off-by: Simon Marchi Reviewed-on: https://review.lttng.org/c/babeltrace/+/3384 Reviewed-by: Philippe Proulx --- src/plugins/text/dmesg/dmesg.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/plugins/text/dmesg/dmesg.c b/src/plugins/text/dmesg/dmesg.c index 188cff89..88acb52b 100644 --- a/src/plugins/text/dmesg/dmesg.c +++ b/src/plugins/text/dmesg/dmesg.c @@ -709,8 +709,7 @@ bt_message_iterator_class_next_method_status dmesg_msg_iter_next_one( { ssize_t len; struct dmesg_component *dmesg_comp; - bt_message_iterator_class_next_method_status status = - BT_MESSAGE_ITERATOR_CLASS_NEXT_METHOD_STATUS_OK; + bt_message_iterator_class_next_method_status status; BT_ASSERT_DBG(dmesg_msg_iter); dmesg_comp = dmesg_msg_iter->dmesg_comp; @@ -735,8 +734,10 @@ bt_message_iterator_class_next_method_status dmesg_msg_iter_next_one( if (len < 0) { if (errno == EINVAL) { status = BT_MESSAGE_ITERATOR_CLASS_NEXT_METHOD_STATUS_ERROR; + goto end; } else if (errno == ENOMEM) { status = BT_MESSAGE_ITERATOR_CLASS_NEXT_METHOD_STATUS_MEMORY_ERROR; + goto end; } else { if (dmesg_msg_iter->state == STATE_EMIT_STREAM_BEGINNING) { /* Stream did not even begin */ @@ -749,8 +750,6 @@ bt_message_iterator_class_next_method_status dmesg_msg_iter_next_one( goto handle_state; } } - - goto end; } BT_ASSERT_DBG(dmesg_msg_iter->linebuf); @@ -774,6 +773,7 @@ bt_message_iterator_class_next_method_status dmesg_msg_iter_next_one( BT_COMP_LOGE("Cannot create event message from line: " "dmesg-comp-addr=%p, line=\"%s\"", dmesg_comp, dmesg_msg_iter->linebuf); + status = BT_MESSAGE_ITERATOR_CLASS_NEXT_METHOD_STATUS_ERROR; goto end; } @@ -805,8 +805,10 @@ handle_state: BT_COMP_LOGE("Cannot create message: dmesg-comp-addr=%p", dmesg_comp); status = BT_MESSAGE_ITERATOR_CLASS_NEXT_METHOD_STATUS_ERROR; + goto end; } + status = BT_MESSAGE_ITERATOR_CLASS_NEXT_METHOD_STATUS_OK; end: return status; } -- 2.34.1