Fix: sink.utils.counter: possible NULL pointer dereference
authorFrancis Deslauriers <francis.deslauriers@efficios.com>
Tue, 20 Aug 2019 03:33:12 +0000 (23:33 -0400)
committerJérémie Galarneau <jeremie.galarneau@efficios.com>
Fri, 23 Aug 2019 00:44:13 +0000 (20:44 -0400)
If the null check at line 148 is true, the `counter` pointer might be
used will be used while being NULL by the
`destroy_private_counter_data()` function.

scan-build report:
  Access to field 'msg_iter' results in a dereference of a null pointer
  (loaded from variable 'counter')

Reported-by: scan-build - Logic error Dereference of null pointer
Signed-off-by: Francis Deslauriers <francis.deslauriers@efficios.com>
Change-Id: I50bb981433ef3f5083613b36bbef54743cddb4c2
Reviewed-on: https://review.lttng.org/c/babeltrace/+/1970
Tested-by: jenkins <jenkins@lttng.org>
Reviewed-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Reviewed-by: Simon Marchi <simon.marchi@efficios.com>
src/plugins/utils/counter/counter.c

index 6284438f1fe120d5866228d9946b05f4876d3fb4..2ad601675054183bc44a4eb6a29eded3b333c07d 100644 (file)
@@ -114,8 +114,11 @@ void try_print_last(struct counter *counter)
 
 void destroy_private_counter_data(struct counter *counter)
 {
-       bt_self_component_port_input_message_iterator_put_ref(counter->msg_iter);
-       g_free(counter);
+       if (counter) {
+               bt_self_component_port_input_message_iterator_put_ref(
+                       counter->msg_iter);
+               g_free(counter);
+       }
 }
 
 BT_HIDDEN
This page took 0.024623 seconds and 4 git commands to generate.