From: Luca Boccassi Date: Tue, 15 Oct 2024 13:05:50 +0000 (+0100) Subject: core: do not fail if ignorable img.v/ vpick dir is missing X-Git-Tag: v257-rc1~214 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=e1efa9d8044a7564844b8d599eda4b59eb1152e9;p=thirdparty%2Fsystemd.git core: do not fail if ignorable img.v/ vpick dir is missing Do not fail if the directory is missing entirely, other than just empty Follow-up for 00f546e25e8 Follow-up for 5e79dd96a88 Follow-up for 622efc544dc --- diff --git a/src/core/namespace.c b/src/core/namespace.c index d13d57f11aa..e1a88f2455e 100644 --- a/src/core/namespace.c +++ b/src/core/namespace.c @@ -526,6 +526,8 @@ static int append_extensions( &pick_filter_image_raw, PICK_ARCHITECTURE|PICK_TRIES, &result); + if (r == -ENOENT && m->ignore_enoent) + continue; if (r < 0) return r; if (!result.path) { @@ -594,6 +596,8 @@ static int append_extensions( &pick_filter_image_dir, PICK_ARCHITECTURE|PICK_TRIES, &result); + if (r == -ENOENT && ignore_enoent) + continue; if (r < 0) return r; if (!result.path) { diff --git a/test/units/TEST-50-DISSECT.dissect.sh b/test/units/TEST-50-DISSECT.dissect.sh index 306ea1f504e..6cf12135517 100755 --- a/test/units/TEST-50-DISSECT.dissect.sh +++ b/test/units/TEST-50-DISSECT.dissect.sh @@ -428,12 +428,13 @@ systemctl is-active testservice-50e.service VBASE="vtest$RANDOM" VDIR="/tmp/$VBASE.v" EMPTY_VDIR="/tmp/$VBASE-empty.v" +NONEXISTENT_VDIR="/tmp/$VBASE-nonexistent.v" mkdir "$VDIR" "$EMPTY_VDIR" ln -s /tmp/app0.raw "$VDIR/${VBASE}_0.raw" ln -s /tmp/app1.raw "$VDIR/${VBASE}_1.raw" -systemd-run -P -p ExtensionImages="$VDIR -$EMPTY_VDIR" bash -c '/opt/script1.sh | grep ID' +systemd-run -P -p ExtensionImages="$VDIR -$EMPTY_VDIR -$NONEXISTENT_VDIR" bash -c '/opt/script1.sh | grep ID' rm -rf "$VDIR" "$EMPTY_VDIR" @@ -504,12 +505,13 @@ systemctl is-active testservice-50f.service VBASE="vtest$RANDOM" VDIR="/tmp/$VBASE.v" EMPTY_VDIR="/tmp/$VBASE-empty.v" +NONEXISTENT_VDIR="/tmp/$VBASE-nonexistent.v" mkdir "$VDIR" "$EMPTY_VDIR" ln -s "$IMAGE_DIR/app0" "$VDIR/${VBASE}_0" ln -s "$IMAGE_DIR/app1" "$VDIR/${VBASE}_1" -systemd-run -P --property ExtensionDirectories="$VDIR -$EMPTY_VDIR" cat /opt/script1.sh | grep -q -F "extension-release.app2" +systemd-run -P --property ExtensionDirectories="$VDIR -$EMPTY_VDIR -$NONEXISTENT_VDIR" cat /opt/script1.sh | grep -q -F "extension-release.app2" rm -rf "$VDIR" "$EMPTY_VDIR"