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>
This page took 0.04522 seconds and 4 git commands to generate.