Fix: lib: use appropriate format specifier to print message iterator class
authorSimon Marchi <simon.marchi@efficios.com>
Wed, 22 Apr 2020 21:13:08 +0000 (17:13 -0400)
committerPhilippe Proulx <eeppeliteloop@gmail.com>
Thu, 23 Apr 2020 11:54:33 +0000 (07:54 -0400)
Running

  babeltrace2 --debug /some/trace

... results in the following crash:

    ==31705==ERROR: AddressSanitizer: SEGV on unknown address 0x000000000000 (pc 0x7f5b9c25ae22 bp 0x7ffc64114490 sp 0x7ffc64113ba8 T0)
    ==31705==The signal is caused by a READ memory access.
    ==31705==Hint: address points to the zero page.
        #0 0x7f5b9c25ae21  (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xfce21)
        #1 0x7f5b9c1d231f  (/usr/lib/x86_64-linux-gnu/libasan.so.4+0x7431f)
        #2 0x7f5b9c1fef4d in __interceptor_vsnprintf (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xa0f4d)
        #3 0x7f5b9c1ff286 in snprintf (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xa1286)
        #4 0x7f5b9bdf61c3 in format_component_class /home/smarchi/src/babeltrace/src/lib/lib-logging.c:1061
        #5 0x7f5b9bdfad46 in handle_conversion_specifier_bt /home/smarchi/src/babeltrace/src/lib/lib-logging.c:1451
        #6 0x7f5b9bead260 in bt_common_custom_vsnprintf /home/smarchi/src/babeltrace/src/common/common.c:1727
        #7 0x7f5b9bdfb10b in bt_lib_log /home/smarchi/src/babeltrace/src/lib/lib-logging.c:1496
        #8 0x7f5b9be32965 in bt_message_iterator_class_set_seek_beginning_methods /home/smarchi/src/babeltrace/src/lib/graph/message-iterator-class.c:138
...

This is due to an object being printed with the wrong format specifier.
`C` is for component class objects, use `I` instead, since we are
printing a message iterator object.

Change-Id: Ie3985d8b7c4e02ac7d09aee84bfe46ea4bab87e9
Signed-off-by: Simon Marchi <simon.marchi@efficios.com>
Reviewed-on: https://review.lttng.org/c/babeltrace/+/3367
CI-Build: Philippe Proulx <eeppeliteloop@gmail.com>
Tested-by: jenkins <jenkins@lttng.org>
Reviewed-by: Philippe Proulx <eeppeliteloop@gmail.com>
src/lib/graph/message-iterator-class.c

index 054d4a4a938cce0e5e1539fbe60adaa9fb9fd3c8..aa385ac497512e8f47d45f335506ea4af9e70411 100644 (file)
@@ -152,6 +152,6 @@ bt_message_iterator_class_set_seek_beginning_methods(
        message_iterator_class->methods.seek_beginning = seek_method;
        message_iterator_class->methods.can_seek_beginning = can_seek_method;
        BT_LIB_LOGD("Set message iterator class's \"seek beginning\" methods"
-               ": %!+C", message_iterator_class);
+               ": %!+I", message_iterator_class);
        return BT_FUNC_STATUS_OK;
 }
This page took 0.024801 seconds and 4 git commands to generate.