Fix: plugin-so.c: Assert failure on short name file in plugin-path
authorFrancis Deslauriers <francis.deslauriers@efficios.com>
Fri, 13 Sep 2019 21:38:12 +0000 (17:38 -0400)
committerFrancis Deslauriers <francis.deslauriers@efficios.com>
Mon, 16 Sep 2019 18:19:54 +0000 (14:19 -0400)
commit4830a4bc78e3980496d53e07326b0bc703c48caa
tree5223449658d9571a8b5b41768e8807a509980c4e
parentf600f713d646878665f8f58787c32a2afd676568
Fix: plugin-so.c: Assert failure on short name file in plugin-path

Issue
=====
Running the following command:
  babeltrace2 --plugin-path=./ ~/lttng-traces/ref/block_rq
in a directory containing a two(or one) characters named file, Babeltrace
aborts with this assertion failure:
  bt_plugin_so_create_all_from_file@plugin-so.c:1527  Babeltrace 2 library precondition not satisfied; error is
  bt_plugin_so_create_all_from_file@plugin-so.c:1527  Path length is too short: path-length=3, min-length=4
  bt_plugin_so_create_all_from_file@plugin-so.c:1527  Aborting...

This problem can also be triggered by placing a single character file at
the root of the file system (e.g. /a) and using the `--plugin-path=/`
parameter.
The assertion failure occurs when trying to find plugins with names that
end with `.so` and `.la` files. This `BT_ASSERT_PRE()` is erroneous
because it asserts that every file tested have one of the right file
extensions when in fact all files of the `--plugin-path` directory are
tested.

Solution
========
Remove the assertion and add an early return if we find that the file
name can not contain any of the accepted suffices.

Drawback
========
None.

Signed-off-by: Francis Deslauriers <francis.deslauriers@efficios.com>
Change-Id: Ib98afa3735a73c2dfabcd96aace9da4c03ae41ab
Reviewed-on: https://review.lttng.org/c/babeltrace/+/2045
Reviewed-by: Simon Marchi <simon.marchi@efficios.com>
src/lib/plugin/plugin-so.c
This page took 0.025565 seconds and 4 git commands to generate.