lttng-tools: executable cannot traverse root directory
authorJonathan Rajotte <jonathan.rajotte-julien@efficios.com>
Wed, 5 May 2021 18:06:31 +0000 (14:06 -0400)
committerJonathan Rajotte <jonathan.rajotte-julien@efficios.com>
Wed, 5 May 2021 18:06:31 +0000 (14:06 -0400)
The test_ust_notifier_discarded_count_multi_uid tests from lttng-tools
required that an instrumented application launched under a temporary
user be able to access lttng-ust libs in DEPS_LIBS. Since the dependancy
are not installed globally and that root owned directory are not
traversable by default, the apps fail to find liblttng-ust due to
permission setting.

To alleviate this for our CI, simply set the a+x bit on all leading
directly to DEPS_LIBS. This is acceptable under our CI since and the
root jobs since we always reset the work state to a known good state.

Signed-off-by: Jonathan Rajotte <jonathan.rajotte-julien@efficios.com>
scripts/lttng-tools/build.sh

index 017beb9cb6126bf07618122eecf1f2737358a7ab..84f12a2201fd371c49212863430c56283a921bf8 100755 (executable)
@@ -82,6 +82,24 @@ failed_configure() {
     exit 1
 }
 
+set_execute_traversal_bit()
+{
+    path=$1
+
+    level="$path"
+    if [ ! -d "$path" ]; then
+        fail "Path is not a directory"
+    fi
+    while level="$(dirname "$level")"
+    do
+        if [ "$level" = / ]; then
+            break
+        fi
+        chmod a+x "$level"
+    done
+    chmod a+x "$path"
+}
+
 # Required variables
 WORKSPACE=${WORKSPACE:-}
 
@@ -449,6 +467,12 @@ if [ "$RUN_TESTS" = "yes" ] && [ "$conf" != "no-ust" ]; then
        # CI and root jobs since we always run root tests against a `snapshot`
        # of the host.
        if [ "$(id -u)" == "0" ]; then
+               # Allow the traversal of all directories leading to the
+               # DEPS_LIBS directory to enable test app run by temp users to
+               # access lttng-ust.
+               set_execute_traversal_bit "$DEPS_LIB"
+               # Allow `all` to interact with all deps libs.
+               chmod a+rwx -R "$DEPS_LIB"
                export LTTNG_ENABLE_DESTRUCTIVE_TESTS="will-break-my-system"
        fi
         make --keep-going check || failed_tests=1
This page took 0.02614 seconds and 4 git commands to generate.