tpm2-tss: 4.0.1 -> 4.1.0

Because upstream rewrote the loader for TCTI, the order for loading
backend got shuffled. This explains the noise in the patch.
This commit is contained in:
Arthur Gautier 2024-04-26 17:38:38 -07:00 committed by Sandro Jäckel
parent 3db313a75d
commit 5a92d56689
No known key found for this signature in database
GPG Key ID: 3AF5A43A3EECC2E5
2 changed files with 392 additions and 126 deletions

View File

@ -1,4 +1,4 @@
{ stdenv, lib, fetchFromGitHub, fetchurl
{ stdenv, lib, fetchFromGitHub
, autoreconfHook, autoconf-archive, pkg-config, doxygen, perl
, openssl, json_c, curl, libgcrypt
, cmocka, uthash, ibm-sw-tpm2, iproute2, procps, which
@ -15,13 +15,13 @@ in
stdenv.mkDerivation rec {
pname = "tpm2-tss";
version = "4.0.1";
version = "4.1.0";
src = fetchFromGitHub {
owner = "tpm2-software";
repo = pname;
rev = version;
sha256 = "sha256-75yiKVZrR1vcCwKp4tDO4A9JB0KDM0MXPJ1N85kAaRk=";
hash = "sha256-cQdIPQNZzy5CisWw5yifPXC7FqaZxj4VKWpvtPOffE8=";
};
outputs = [ "out" "man" "dev" ];
@ -53,11 +53,6 @@ stdenv.mkDerivation rec {
# Do not rely on dynamic loader path
# TCTI loader relies on dlopen(), this patch prefixes all calls with the output directory
./no-dynamic-loader-path.patch
(fetchurl {
name = "skip-test-fapi-fix-provisioning-with-template-if-no-certificate-available.patch";
url = "https://github.com/tpm2-software/tpm2-tss/commit/218c0da8d9f675766b1de502a52e23a3aa52648e.patch";
sha256 = "sha256-dnl9ZAknCdmvix2TdQvF0fHoYeWp+jfCTg8Uc7h0voA=";
})
];
postPatch = ''
@ -65,7 +60,7 @@ stdenv.mkDerivation rec {
substituteInPlace src/tss2-tcti/tctildr-dl.c \
--replace '@PREFIX@' $out/lib/
substituteInPlace ./test/unit/tctildr-dl.c \
--replace '@PREFIX@' $out/lib
--replace '@PREFIX@' $out/lib/
substituteInPlace ./bootstrap \
--replace 'git describe --tags --always --dirty' 'echo "${version}"'
'';

View File

@ -1,232 +1,503 @@
diff --git a/src/tss2-tcti/tctildr-dl.c b/src/tss2-tcti/tctildr-dl.c
index 622637dc..88fc3d8f 100644
index d26219d2..92d2b6a3 100644
--- a/src/tss2-tcti/tctildr-dl.c
+++ b/src/tss2-tcti/tctildr-dl.c
@@ -92,7 +92,7 @@ handle_from_name(const char *file,
LOG_DEBUG("Could not load TCTI file: \"%s\": %s", file, dlerror());
}
@@ -88,14 +88,24 @@ handle_from_name(const char *file,
const char *formats[] = {
/* <name> */
"%s",
+ /* <name> */
+ "@PREFIX@" "%s",
/* libtss2-tcti-<name>.so.0 */
FMT_TCTI_PREFIX "%s" FMT_LIB_SUFFIX_0,
+ /* libtss2-tcti-<name>.so.0 */
+ "@PREFIX@" FMT_TCTI_PREFIX "%s" FMT_LIB_SUFFIX_0,
/* libtss2-tcti-<name>.so */
FMT_TCTI_PREFIX "%s" FMT_LIB_SUFFIX,
+ /* libtss2-tcti-<name>.so */
+ "@PREFIX@" FMT_TCTI_PREFIX "%s" FMT_LIB_SUFFIX,
/* libtss2-<name>.so.0 */
FMT_TSS_PREFIX "%s" FMT_LIB_SUFFIX_0,
+ /* libtss2-<name>.so.0 */
+ "@PREFIX@" FMT_TSS_PREFIX "%s" FMT_LIB_SUFFIX_0,
/* libtss2-<name>.so */
FMT_TSS_PREFIX "%s" FMT_LIB_SUFFIX,
+ /* libtss2-<name>.so */
+ "@PREFIX@" FMT_TSS_PREFIX "%s" FMT_LIB_SUFFIX,
};
- len = snprintf(NULL, 0, TCTI_NAME_TEMPLATE_0, file);
+ len = snprintf(NULL, 0, "@PREFIX@" TCTI_NAME_TEMPLATE_0, file);
if (len >= PATH_MAX) {
LOG_ERROR("TCTI name truncated in transform.");
return TSS2_TCTI_RC_BAD_VALUE;
@@ -129,6 +129,50 @@ handle_from_name(const char *file,
return TSS2_TCTI_RC_BAD_VALUE;
}
*handle = dlopen(file_xfrm, RTLD_NOW);
+ if (*handle != NULL) {
+ return TSS2_RC_SUCCESS;
+ } else {
+ LOG_DEBUG("Failed to load TCTI for name \"%s\": %s", file, dlerror());
+ }
+ size = snprintf(file_xfrm,
+ len + 1,
+ "@PREFIX@%s",
+ file);
+ if (size >= len + 1) {
+ LOG_ERROR("TCTI name truncated in transform.");
+ return TSS2_TCTI_RC_BAD_VALUE;
+ }
+ *handle = dlopen(file_xfrm, RTLD_NOW);
+ if (*handle != NULL) {
+ return TSS2_RC_SUCCESS;
+ } else {
+ LOG_DEBUG("Could not load TCTI file: \"%s\": %s", file, dlerror());
+ }
+ /* 'name' alone didn't work, try libtss2-tcti-<name>.so.0 */
+ size = snprintf(file_xfrm,
+ len + 1,
+ "@PREFIX@" TCTI_NAME_TEMPLATE_0,
+ file);
+ if (size >= len + 1) {
+ LOG_ERROR("TCTI name truncated in transform.");
+ return TSS2_TCTI_RC_BAD_VALUE;
+ }
+ *handle = dlopen(file_xfrm, RTLD_NOW);
+ if (*handle != NULL) {
+ return TSS2_RC_SUCCESS;
+ } else {
+ LOG_DEBUG("Could not load TCTI file \"%s\": %s", file, dlerror());
+ }
+ /* libtss2-tcti-<name>.so.0 didn't work, try libtss2-tcti-<name>.so */
+ size = snprintf(file_xfrm,
+ len + 1,
+ "@PREFIX@" TCTI_NAME_TEMPLATE,
+ file);
+ if (size >= len + 1) {
+ LOG_ERROR("TCTI name truncated in transform.");
+ return TSS2_TCTI_RC_BAD_VALUE;
+ }
+ *handle = dlopen(file_xfrm, RTLD_NOW);
if (*handle == NULL) {
LOG_DEBUG("Failed to load TCTI for name \"%s\": %s", file, dlerror());
SAFE_FREE(file_xfrm);
if (handle == NULL) {
diff --git a/test/unit/tctildr-dl.c b/test/unit/tctildr-dl.c
index 4279baee..6685c811 100644
index 135e1b14..7d654d1f 100644
--- a/test/unit/tctildr-dl.c
+++ b/test/unit/tctildr-dl.c
@@ -229,6 +229,18 @@ test_get_info_default_success (void **state)
@@ -168,6 +168,10 @@ test_handle_from_name_second_dlopen_success (void **state)
expect_value(__wrap_dlopen, flags, RTLD_NOW);
will_return(__wrap_dlopen, NULL);
+ expect_string(__wrap_dlopen, filename, "@PREFIX@/libtss2-tcti-default.so");
+ expect_string(__wrap_dlopen, filename, "@PREFIX@" TEST_TCTI_TRY_A);
+ expect_value(__wrap_dlopen, flags, RTLD_NOW);
+ will_return(__wrap_dlopen, NULL);
+
+ expect_string(__wrap_dlopen, filename, "@PREFIX@/libtss2-tcti-libtss2-tcti-default.so.so.0");
+ expect_value(__wrap_dlopen, flags, RTLD_NOW);
+ will_return(__wrap_dlopen, NULL);
+
+ expect_string(__wrap_dlopen, filename, "@PREFIX@/libtss2-tcti-libtss2-tcti-default.so.so");
+ expect_value(__wrap_dlopen, flags, RTLD_NOW);
+ will_return(__wrap_dlopen, NULL);
+
expect_string(__wrap_dlopen, filename, "libtss2-tcti-tabrmd.so.0");
expect_string(__wrap_dlopen, filename, TEST_TCTI_TRY_B);
expect_value(__wrap_dlopen, flags, RTLD_NOW);
will_return(__wrap_dlopen, HANDLE);
@@ -261,6 +273,18 @@ test_get_info_default_info_fail (void **state)
will_return(__wrap_dlopen, TEST_HANDLE);
@@ -186,10 +190,18 @@ test_handle_from_name_third_dlopen_success (void **state)
expect_value(__wrap_dlopen, flags, RTLD_NOW);
will_return(__wrap_dlopen, NULL);
+ expect_string(__wrap_dlopen, filename, "@PREFIX@/libtss2-tcti-default.so");
+ expect_string(__wrap_dlopen, filename, "@PREFIX@" TEST_TCTI_TRY_A);
+ expect_value(__wrap_dlopen, flags, RTLD_NOW);
+ will_return(__wrap_dlopen, NULL);
+
+ expect_string(__wrap_dlopen, filename, "@PREFIX@/libtss2-tcti-libtss2-tcti-default.so.so.0");
+ expect_value(__wrap_dlopen, flags, RTLD_NOW);
+ will_return(__wrap_dlopen, NULL);
+
+ expect_string(__wrap_dlopen, filename, "@PREFIX@/libtss2-tcti-libtss2-tcti-default.so.so");
+ expect_value(__wrap_dlopen, flags, RTLD_NOW);
+ will_return(__wrap_dlopen, NULL);
+
expect_string(__wrap_dlopen, filename, "libtss2-tcti-tabrmd.so.0");
expect_string(__wrap_dlopen, filename, TEST_TCTI_TRY_B);
expect_value(__wrap_dlopen, flags, RTLD_NOW);
will_return(__wrap_dlopen, HANDLE);
@@ -413,6 +437,15 @@ test_tcti_fail_all (void **state)
will_return(__wrap_dlopen, NULL);
+ expect_string(__wrap_dlopen, filename, "@PREFIX@" TEST_TCTI_TRY_B);
+ expect_value(__wrap_dlopen, flags, RTLD_NOW);
+ will_return(__wrap_dlopen, NULL);
+
expect_string(__wrap_dlopen, filename, TEST_TCTI_TRY_C);
expect_value(__wrap_dlopen, flags, RTLD_NOW);
will_return(__wrap_dlopen, TEST_HANDLE);
@@ -208,14 +220,26 @@ test_handle_from_name_fourth_dlopen_success (void **state)
expect_value(__wrap_dlopen, flags, RTLD_NOW);
will_return(__wrap_dlopen, NULL);
+ expect_string(__wrap_dlopen, filename, "@PREFIX@" TEST_TCTI_TRY_A);
+ expect_value(__wrap_dlopen, flags, RTLD_NOW);
+ will_return(__wrap_dlopen, NULL);
+
expect_string(__wrap_dlopen, filename, TEST_TCTI_TRY_B);
expect_value(__wrap_dlopen, flags, RTLD_NOW);
will_return(__wrap_dlopen, NULL);
+ expect_string(__wrap_dlopen, filename, "@PREFIX@" TEST_TCTI_TRY_B);
+ expect_value(__wrap_dlopen, flags, RTLD_NOW);
+ will_return(__wrap_dlopen, NULL);
+
expect_string(__wrap_dlopen, filename, TEST_TCTI_TRY_C);
expect_value(__wrap_dlopen, flags, RTLD_NOW);
will_return(__wrap_dlopen, NULL);
+ expect_string(__wrap_dlopen, filename, "@PREFIX@" TEST_TCTI_TRY_C);
+ expect_value(__wrap_dlopen, flags, RTLD_NOW);
+ will_return(__wrap_dlopen, NULL);
+
expect_string(__wrap_dlopen, filename, TEST_TCTI_TRY_D);
expect_value(__wrap_dlopen, flags, RTLD_NOW);
will_return(__wrap_dlopen, TEST_HANDLE);
@@ -234,18 +258,34 @@ test_handle_from_name_fifth_dlopen_success (void **state)
expect_value(__wrap_dlopen, flags, RTLD_NOW);
will_return(__wrap_dlopen, NULL);
+ expect_string(__wrap_dlopen, filename, "@PREFIX@" TEST_TCTI_TRY_A);
+ expect_value(__wrap_dlopen, flags, RTLD_NOW);
+ will_return(__wrap_dlopen, NULL);
+
expect_string(__wrap_dlopen, filename, TEST_TCTI_TRY_B);
expect_value(__wrap_dlopen, flags, RTLD_NOW);
will_return(__wrap_dlopen, NULL);
+ expect_string(__wrap_dlopen, filename, "@PREFIX@" TEST_TCTI_TRY_B);
+ expect_value(__wrap_dlopen, flags, RTLD_NOW);
+ will_return(__wrap_dlopen, NULL);
+
expect_string(__wrap_dlopen, filename, TEST_TCTI_TRY_C);
expect_value(__wrap_dlopen, flags, RTLD_NOW);
will_return(__wrap_dlopen, NULL);
+ expect_string(__wrap_dlopen, filename, "@PREFIX@" TEST_TCTI_TRY_C);
+ expect_value(__wrap_dlopen, flags, RTLD_NOW);
+ will_return(__wrap_dlopen, NULL);
+
expect_string(__wrap_dlopen, filename, TEST_TCTI_TRY_D);
expect_value(__wrap_dlopen, flags, RTLD_NOW);
will_return(__wrap_dlopen, NULL);
+ expect_string(__wrap_dlopen, filename, "@PREFIX@" TEST_TCTI_TRY_D);
+ expect_value(__wrap_dlopen, flags, RTLD_NOW);
+ will_return(__wrap_dlopen, NULL);
+
expect_string(__wrap_dlopen, filename, TEST_TCTI_TRY_E);
expect_value(__wrap_dlopen, flags, RTLD_NOW);
will_return(__wrap_dlopen, TEST_HANDLE);
@@ -281,22 +321,42 @@ test_get_info_default_success (void **state)
expect_value(__wrap_dlopen, flags, RTLD_NOW);
will_return(__wrap_dlopen, NULL);
+ expect_string(__wrap_dlopen, filename, "@PREFIX@" "libtss2-tcti-default.so");
+ expect_value(__wrap_dlopen, flags, RTLD_NOW);
+ will_return(__wrap_dlopen, NULL);
+
expect_string(__wrap_dlopen, filename, "libtss2-tcti-libtss2-tcti-default.so.so.0");
expect_value(__wrap_dlopen, flags, RTLD_NOW);
will_return(__wrap_dlopen, NULL);
+ expect_string(__wrap_dlopen, filename, "@PREFIX@" "libtss2-tcti-libtss2-tcti-default.so.so.0");
+ expect_value(__wrap_dlopen, flags, RTLD_NOW);
+ will_return(__wrap_dlopen, NULL);
+
expect_string(__wrap_dlopen, filename, "libtss2-tcti-libtss2-tcti-default.so.so");
expect_value(__wrap_dlopen, flags, RTLD_NOW);
will_return(__wrap_dlopen, NULL);
+ expect_string(__wrap_dlopen, filename, "@PREFIX@/libtss2-tcti-default.so");
+ expect_string(__wrap_dlopen, filename, "@PREFIX@" "libtss2-tcti-libtss2-tcti-default.so.so");
+ expect_value(__wrap_dlopen, flags, RTLD_NOW);
+ will_return(__wrap_dlopen, NULL);
+ expect_string(__wrap_dlopen, filename, "@PREFIX@/libtss2-tcti-libtss2-tcti-default.so.so.0");
+
expect_string(__wrap_dlopen, filename, "libtss2-libtss2-tcti-default.so.so.0");
expect_value(__wrap_dlopen, flags, RTLD_NOW);
will_return(__wrap_dlopen, NULL);
+ expect_string(__wrap_dlopen, filename, "@PREFIX@" "libtss2-libtss2-tcti-default.so.so.0");
+ expect_value(__wrap_dlopen, flags, RTLD_NOW);
+ will_return(__wrap_dlopen, NULL);
+ expect_string(__wrap_dlopen, filename, "@PREFIX@/libtss2-tcti-libtss2-tcti-default.so.so");
+
expect_string(__wrap_dlopen, filename, "libtss2-libtss2-tcti-default.so.so");
expect_value(__wrap_dlopen, flags, RTLD_NOW);
will_return(__wrap_dlopen, NULL);
+ expect_string(__wrap_dlopen, filename, "@PREFIX@" "libtss2-libtss2-tcti-default.so.so");
+ expect_value(__wrap_dlopen, flags, RTLD_NOW);
+ will_return(__wrap_dlopen, NULL);
+
expect_string(__wrap_dlopen, filename, "libtss2-tcti-tabrmd.so.0");
expect_value(__wrap_dlopen, flags, RTLD_NOW);
will_return(__wrap_dlopen, HANDLE);
@@ -321,22 +381,42 @@ test_get_info_default_info_fail (void **state)
expect_value(__wrap_dlopen, flags, RTLD_NOW);
will_return(__wrap_dlopen, NULL);
+ expect_string(__wrap_dlopen, filename, "@PREFIX@" "libtss2-tcti-default.so");
+ expect_value(__wrap_dlopen, flags, RTLD_NOW);
+ will_return(__wrap_dlopen, NULL);
+
expect_string(__wrap_dlopen, filename, "libtss2-tcti-libtss2-tcti-default.so.so.0");
expect_value(__wrap_dlopen, flags, RTLD_NOW);
will_return(__wrap_dlopen, NULL);
+ expect_string(__wrap_dlopen, filename, "@PREFIX@" "libtss2-tcti-libtss2-tcti-default.so.so.0");
+ expect_value(__wrap_dlopen, flags, RTLD_NOW);
+ will_return(__wrap_dlopen, NULL);
+
expect_string(__wrap_dlopen, filename, "libtss2-tcti-libtss2-tcti-default.so.so");
expect_value(__wrap_dlopen, flags, RTLD_NOW);
will_return(__wrap_dlopen, NULL);
+ expect_string(__wrap_dlopen, filename, "@PREFIX@" "libtss2-tcti-libtss2-tcti-default.so.so");
+ expect_value(__wrap_dlopen, flags, RTLD_NOW);
+ will_return(__wrap_dlopen, NULL);
+
expect_string(__wrap_dlopen, filename, "libtss2-libtss2-tcti-default.so.so.0");
expect_value(__wrap_dlopen, flags, RTLD_NOW);
will_return(__wrap_dlopen, NULL);
+ expect_string(__wrap_dlopen, filename, "@PREFIX@" "libtss2-libtss2-tcti-default.so.so.0");
+ expect_value(__wrap_dlopen, flags, RTLD_NOW);
+ will_return(__wrap_dlopen, NULL);
+
expect_string(__wrap_dlopen, filename, "libtss2-libtss2-tcti-default.so.so");
expect_value(__wrap_dlopen, flags, RTLD_NOW);
will_return(__wrap_dlopen, NULL);
+ expect_string(__wrap_dlopen, filename, "@PREFIX@" "libtss2-libtss2-tcti-default.so.so");
+ expect_value(__wrap_dlopen, flags, RTLD_NOW);
+ will_return(__wrap_dlopen, NULL);
+
expect_string(__wrap_dlopen, filename, "libtss2-tcti-tabrmd.so.0");
expect_value(__wrap_dlopen, flags, RTLD_NOW);
will_return(__wrap_dlopen, HANDLE);
@@ -483,120 +563,225 @@ test_tcti_fail_all (void **state)
expect_string(__wrap_dlopen, filename, "libtss2-tcti-default.so");
expect_value(__wrap_dlopen, flags, RTLD_NOW);
will_return(__wrap_dlopen, NULL);
+ expect_string(__wrap_dlopen, filename, "@PREFIX@" "libtss2-tcti-default.so");
+ expect_value(__wrap_dlopen, flags, RTLD_NOW);
+ will_return(__wrap_dlopen, NULL);
expect_string(__wrap_dlopen, filename, "libtss2-tcti-libtss2-tcti-default.so.so.0");
expect_value(__wrap_dlopen, flags, RTLD_NOW);
will_return(__wrap_dlopen, NULL);
+ expect_string(__wrap_dlopen, filename, "@PREFIX@" "libtss2-tcti-libtss2-tcti-default.so.so.0");
+ expect_value(__wrap_dlopen, flags, RTLD_NOW);
+ will_return(__wrap_dlopen, NULL);
expect_string(__wrap_dlopen, filename, "libtss2-tcti-libtss2-tcti-default.so.so");
expect_value(__wrap_dlopen, flags, RTLD_NOW);
will_return(__wrap_dlopen, NULL);
+ expect_string(__wrap_dlopen, filename, "@PREFIX@" "libtss2-tcti-libtss2-tcti-default.so.so");
+ expect_value(__wrap_dlopen, flags, RTLD_NOW);
+ will_return(__wrap_dlopen, NULL);
expect_string(__wrap_dlopen, filename, "libtss2-libtss2-tcti-default.so.so.0");
expect_value(__wrap_dlopen, flags, RTLD_NOW);
will_return(__wrap_dlopen, NULL);
+ expect_string(__wrap_dlopen, filename, "@PREFIX@" "libtss2-libtss2-tcti-default.so.so.0");
+ expect_value(__wrap_dlopen, flags, RTLD_NOW);
+ will_return(__wrap_dlopen, NULL);
expect_string(__wrap_dlopen, filename, "libtss2-libtss2-tcti-default.so.so");
expect_value(__wrap_dlopen, flags, RTLD_NOW);
will_return(__wrap_dlopen, NULL);
+ expect_string(__wrap_dlopen, filename, "@PREFIX@" "libtss2-libtss2-tcti-default.so.so");
+ expect_value(__wrap_dlopen, flags, RTLD_NOW);
+ will_return(__wrap_dlopen, NULL);
/* Skip over libtss2-tcti-tabrmd.so */
expect_string(__wrap_dlopen, filename, "libtss2-tcti-tabrmd.so.0");
@@ -424,6 +457,15 @@ test_tcti_fail_all (void **state)
expect_value(__wrap_dlopen, flags, RTLD_NOW);
will_return(__wrap_dlopen, NULL);
+ expect_string(__wrap_dlopen, filename, "@PREFIX@" "libtss2-tcti-tabrmd.so.0");
+ expect_value(__wrap_dlopen, flags, RTLD_NOW);
+ will_return(__wrap_dlopen, NULL);
expect_string(__wrap_dlopen, filename, "libtss2-tcti-libtss2-tcti-tabrmd.so.0.so.0");
expect_value(__wrap_dlopen, flags, RTLD_NOW);
will_return(__wrap_dlopen, NULL);
+ expect_string(__wrap_dlopen, filename, "@PREFIX@" "libtss2-tcti-libtss2-tcti-tabrmd.so.0.so.0");
+ expect_value(__wrap_dlopen, flags, RTLD_NOW);
+ will_return(__wrap_dlopen, NULL);
expect_string(__wrap_dlopen, filename, "libtss2-tcti-libtss2-tcti-tabrmd.so.0.so");
expect_value(__wrap_dlopen, flags, RTLD_NOW);
will_return(__wrap_dlopen, NULL);
+ expect_string(__wrap_dlopen, filename, "@PREFIX@/libtss2-tcti-tabrmd.so.0");
+ expect_string(__wrap_dlopen, filename, "@PREFIX@" "libtss2-tcti-libtss2-tcti-tabrmd.so.0.so");
+ expect_value(__wrap_dlopen, flags, RTLD_NOW);
+ will_return(__wrap_dlopen, NULL);
+ expect_string(__wrap_dlopen, filename, "@PREFIX@/libtss2-tcti-libtss2-tcti-tabrmd.so.0.so.0");
expect_string(__wrap_dlopen, filename, "libtss2-libtss2-tcti-tabrmd.so.0.so.0");
expect_value(__wrap_dlopen, flags, RTLD_NOW);
will_return(__wrap_dlopen, NULL);
+ expect_string(__wrap_dlopen, filename, "@PREFIX@" "libtss2-libtss2-tcti-tabrmd.so.0.so.0");
+ expect_value(__wrap_dlopen, flags, RTLD_NOW);
+ will_return(__wrap_dlopen, NULL);
+ expect_string(__wrap_dlopen, filename, "@PREFIX@/libtss2-tcti-libtss2-tcti-tabrmd.so.0.so");
expect_string(__wrap_dlopen, filename, "libtss2-libtss2-tcti-tabrmd.so.0.so");
expect_value(__wrap_dlopen, flags, RTLD_NOW);
will_return(__wrap_dlopen, NULL);
+ expect_string(__wrap_dlopen, filename, "@PREFIX@" "libtss2-libtss2-tcti-tabrmd.so.0.so");
+ expect_value(__wrap_dlopen, flags, RTLD_NOW);
+ will_return(__wrap_dlopen, NULL);
/* Skip over libtss2-tcti-device.so, /dev/tpmrm0 */
expect_string(__wrap_dlopen, filename, "libtss2-tcti-device.so.0");
@@ -435,6 +477,15 @@ test_tcti_fail_all (void **state)
expect_value(__wrap_dlopen, flags, RTLD_NOW);
will_return(__wrap_dlopen, NULL);
+ expect_string(__wrap_dlopen, filename, "@PREFIX@" "libtss2-tcti-device.so.0");
+ expect_value(__wrap_dlopen, flags, RTLD_NOW);
+ will_return(__wrap_dlopen, NULL);
expect_string(__wrap_dlopen, filename, "libtss2-tcti-libtss2-tcti-device.so.0.so.0");
expect_value(__wrap_dlopen, flags, RTLD_NOW);
will_return(__wrap_dlopen, NULL);
+ expect_string(__wrap_dlopen, filename, "@PREFIX@" "libtss2-tcti-libtss2-tcti-device.so.0.so.0");
+ expect_value(__wrap_dlopen, flags, RTLD_NOW);
+ will_return(__wrap_dlopen, NULL);
expect_string(__wrap_dlopen, filename, "libtss2-tcti-libtss2-tcti-device.so.0.so");
expect_value(__wrap_dlopen, flags, RTLD_NOW);
will_return(__wrap_dlopen, NULL);
+ expect_string(__wrap_dlopen, filename, "@PREFIX@/libtss2-tcti-device.so.0");
+ expect_string(__wrap_dlopen, filename, "@PREFIX@" "libtss2-tcti-libtss2-tcti-device.so.0.so");
+ expect_value(__wrap_dlopen, flags, RTLD_NOW);
+ will_return(__wrap_dlopen, NULL);
+ expect_string(__wrap_dlopen, filename, "@PREFIX@/libtss2-tcti-libtss2-tcti-device.so.0.so.0");
expect_string(__wrap_dlopen, filename, "libtss2-libtss2-tcti-device.so.0.so.0");
expect_value(__wrap_dlopen, flags, RTLD_NOW);
will_return(__wrap_dlopen, NULL);
+ expect_string(__wrap_dlopen, filename, "@PREFIX@" "libtss2-libtss2-tcti-device.so.0.so.0");
+ expect_value(__wrap_dlopen, flags, RTLD_NOW);
+ will_return(__wrap_dlopen, NULL);
+ expect_string(__wrap_dlopen, filename, "@PREFIX@/libtss2-tcti-libtss2-tcti-device.so.0.so");
expect_string(__wrap_dlopen, filename, "libtss2-libtss2-tcti-device.so.0.so");
expect_value(__wrap_dlopen, flags, RTLD_NOW);
will_return(__wrap_dlopen, NULL);
+ expect_string(__wrap_dlopen, filename, "@PREFIX@" "libtss2-libtss2-tcti-device.so.0.so");
+ expect_value(__wrap_dlopen, flags, RTLD_NOW);
+ will_return(__wrap_dlopen, NULL);
/* Skip over libtss2-tcti-device.so, /dev/tpm0 */
expect_string(__wrap_dlopen, filename, "libtss2-tcti-device.so.0");
@@ -446,6 +497,15 @@ test_tcti_fail_all (void **state)
expect_value(__wrap_dlopen, flags, RTLD_NOW);
will_return(__wrap_dlopen, NULL);
+ expect_string(__wrap_dlopen, filename, "@PREFIX@" "libtss2-tcti-device.so.0");
+ expect_value(__wrap_dlopen, flags, RTLD_NOW);
+ will_return(__wrap_dlopen, NULL);
expect_string(__wrap_dlopen, filename, "libtss2-tcti-libtss2-tcti-device.so.0.so.0");
expect_value(__wrap_dlopen, flags, RTLD_NOW);
will_return(__wrap_dlopen, NULL);
+ expect_string(__wrap_dlopen, filename, "@PREFIX@" "libtss2-tcti-libtss2-tcti-device.so.0.so.0");
+ expect_value(__wrap_dlopen, flags, RTLD_NOW);
+ will_return(__wrap_dlopen, NULL);
expect_string(__wrap_dlopen, filename, "libtss2-tcti-libtss2-tcti-device.so.0.so");
expect_value(__wrap_dlopen, flags, RTLD_NOW);
will_return(__wrap_dlopen, NULL);
+ expect_string(__wrap_dlopen, filename, "@PREFIX@/libtss2-tcti-device.so.0");
+ expect_string(__wrap_dlopen, filename, "@PREFIX@" "libtss2-tcti-libtss2-tcti-device.so.0.so");
+ expect_value(__wrap_dlopen, flags, RTLD_NOW);
+ will_return(__wrap_dlopen, NULL);
+ expect_string(__wrap_dlopen, filename, "@PREFIX@/libtss2-tcti-libtss2-tcti-device.so.0.so.0");
expect_string(__wrap_dlopen, filename, "libtss2-libtss2-tcti-device.so.0.so.0");
expect_value(__wrap_dlopen, flags, RTLD_NOW);
will_return(__wrap_dlopen, NULL);
+ expect_string(__wrap_dlopen, filename, "@PREFIX@" "libtss2-libtss2-tcti-device.so.0.so.0");
+ expect_value(__wrap_dlopen, flags, RTLD_NOW);
+ will_return(__wrap_dlopen, NULL);
+ expect_string(__wrap_dlopen, filename, "@PREFIX@/libtss2-tcti-libtss2-tcti-device.so.0.so");
expect_string(__wrap_dlopen, filename, "libtss2-libtss2-tcti-device.so.0.so");
expect_value(__wrap_dlopen, flags, RTLD_NOW);
will_return(__wrap_dlopen, NULL);
+ expect_string(__wrap_dlopen, filename, "@PREFIX@" "libtss2-libtss2-tcti-device.so.0.so");
+ expect_value(__wrap_dlopen, flags, RTLD_NOW);
+ will_return(__wrap_dlopen, NULL);
/* Skip over libtss2-tcti-device.so, /dev/tcm0 */
expect_string(__wrap_dlopen, filename, "libtss2-tcti-device.so.0");
expect_value(__wrap_dlopen, flags, RTLD_NOW);
will_return(__wrap_dlopen, NULL);
+ expect_string(__wrap_dlopen, filename, "@PREFIX@" "libtss2-tcti-device.so.0");
+ expect_value(__wrap_dlopen, flags, RTLD_NOW);
+ will_return(__wrap_dlopen, NULL);
expect_string(__wrap_dlopen, filename, "libtss2-tcti-libtss2-tcti-device.so.0.so.0");
expect_value(__wrap_dlopen, flags, RTLD_NOW);
will_return(__wrap_dlopen, NULL);
+ expect_string(__wrap_dlopen, filename, "@PREFIX@" "libtss2-tcti-libtss2-tcti-device.so.0.so.0");
+ expect_value(__wrap_dlopen, flags, RTLD_NOW);
+ will_return(__wrap_dlopen, NULL);
expect_string(__wrap_dlopen, filename, "libtss2-tcti-libtss2-tcti-device.so.0.so");
expect_value(__wrap_dlopen, flags, RTLD_NOW);
will_return(__wrap_dlopen, NULL);
+ expect_string(__wrap_dlopen, filename, "@PREFIX@" "libtss2-tcti-libtss2-tcti-device.so.0.so");
+ expect_value(__wrap_dlopen, flags, RTLD_NOW);
+ will_return(__wrap_dlopen, NULL);
expect_string(__wrap_dlopen, filename, "libtss2-libtss2-tcti-device.so.0.so.0");
expect_value(__wrap_dlopen, flags, RTLD_NOW);
will_return(__wrap_dlopen, NULL);
+ expect_string(__wrap_dlopen, filename, "@PREFIX@" "libtss2-libtss2-tcti-device.so.0.so.0");
+ expect_value(__wrap_dlopen, flags, RTLD_NOW);
+ will_return(__wrap_dlopen, NULL);
expect_string(__wrap_dlopen, filename, "libtss2-libtss2-tcti-device.so.0.so");
expect_value(__wrap_dlopen, flags, RTLD_NOW);
will_return(__wrap_dlopen, NULL);
+ expect_string(__wrap_dlopen, filename, "@PREFIX@" "libtss2-libtss2-tcti-device.so.0.so");
+ expect_value(__wrap_dlopen, flags, RTLD_NOW);
+ will_return(__wrap_dlopen, NULL);
/* Skip over libtss2-tcti-swtpm.so */
expect_string(__wrap_dlopen, filename, "libtss2-tcti-swtpm.so.0");
@@ -457,6 +517,15 @@ test_tcti_fail_all (void **state)
expect_value(__wrap_dlopen, flags, RTLD_NOW);
will_return(__wrap_dlopen, NULL);
+ expect_string(__wrap_dlopen, filename, "@PREFIX@" "libtss2-tcti-swtpm.so.0");
+ expect_value(__wrap_dlopen, flags, RTLD_NOW);
+ will_return(__wrap_dlopen, NULL);
expect_string(__wrap_dlopen, filename, "libtss2-tcti-libtss2-tcti-swtpm.so.0.so.0");
expect_value(__wrap_dlopen, flags, RTLD_NOW);
will_return(__wrap_dlopen, NULL);
+ expect_string(__wrap_dlopen, filename, "@PREFIX@" "libtss2-tcti-libtss2-tcti-swtpm.so.0.so.0");
+ expect_value(__wrap_dlopen, flags, RTLD_NOW);
+ will_return(__wrap_dlopen, NULL);
expect_string(__wrap_dlopen, filename, "libtss2-tcti-libtss2-tcti-swtpm.so.0.so");
expect_value(__wrap_dlopen, flags, RTLD_NOW);
will_return(__wrap_dlopen, NULL);
+ expect_string(__wrap_dlopen, filename, "@PREFIX@/libtss2-tcti-swtpm.so.0");
+ expect_string(__wrap_dlopen, filename, "@PREFIX@" "libtss2-tcti-libtss2-tcti-swtpm.so.0.so");
+ expect_value(__wrap_dlopen, flags, RTLD_NOW);
+ will_return(__wrap_dlopen, NULL);
+ expect_string(__wrap_dlopen, filename, "@PREFIX@/libtss2-tcti-libtss2-tcti-swtpm.so.0.so.0");
expect_string(__wrap_dlopen, filename, "libtss2-libtss2-tcti-swtpm.so.0.so.0");
expect_value(__wrap_dlopen, flags, RTLD_NOW);
will_return(__wrap_dlopen, NULL);
+ expect_string(__wrap_dlopen, filename, "@PREFIX@" "libtss2-libtss2-tcti-swtpm.so.0.so.0");
+ expect_value(__wrap_dlopen, flags, RTLD_NOW);
+ will_return(__wrap_dlopen, NULL);
+ expect_string(__wrap_dlopen, filename, "@PREFIX@/libtss2-tcti-libtss2-tcti-swtpm.so.0.so");
expect_string(__wrap_dlopen, filename, "libtss2-libtss2-tcti-swtpm.so.0.so");
expect_value(__wrap_dlopen, flags, RTLD_NOW);
will_return(__wrap_dlopen, NULL);
+ expect_string(__wrap_dlopen, filename, "@PREFIX@" "libtss2-libtss2-tcti-swtpm.so.0.so");
+ expect_value(__wrap_dlopen, flags, RTLD_NOW);
+ will_return(__wrap_dlopen, NULL);
/* Skip over libtss2-tcti-mssim.so */
expect_string(__wrap_dlopen, filename, "libtss2-tcti-mssim.so.0");
@@ -468,6 +537,15 @@ test_tcti_fail_all (void **state)
expect_value(__wrap_dlopen, flags, RTLD_NOW);
will_return(__wrap_dlopen, NULL);
+ expect_string(__wrap_dlopen, filename, "@PREFIX@" "libtss2-tcti-mssim.so.0");
+ expect_value(__wrap_dlopen, flags, RTLD_NOW);
+ will_return(__wrap_dlopen, NULL);
expect_string(__wrap_dlopen, filename, "libtss2-tcti-libtss2-tcti-mssim.so.0.so.0");
expect_value(__wrap_dlopen, flags, RTLD_NOW);
will_return(__wrap_dlopen, NULL);
+ expect_string(__wrap_dlopen, filename, "@PREFIX@" "libtss2-tcti-libtss2-tcti-mssim.so.0.so.0");
+ expect_value(__wrap_dlopen, flags, RTLD_NOW);
+ will_return(__wrap_dlopen, NULL);
expect_string(__wrap_dlopen, filename, "libtss2-tcti-libtss2-tcti-mssim.so.0.so");
expect_value(__wrap_dlopen, flags, RTLD_NOW);
will_return(__wrap_dlopen, NULL);
+ expect_string(__wrap_dlopen, filename, "@PREFIX@/libtss2-tcti-mssim.so.0");
+ expect_string(__wrap_dlopen, filename, "@PREFIX@" "libtss2-tcti-libtss2-tcti-mssim.so.0.so");
+ expect_value(__wrap_dlopen, flags, RTLD_NOW);
+ will_return(__wrap_dlopen, NULL);
+ expect_string(__wrap_dlopen, filename, "@PREFIX@/libtss2-tcti-libtss2-tcti-mssim.so.0.so.0");
expect_string(__wrap_dlopen, filename, "libtss2-libtss2-tcti-mssim.so.0.so.0");
expect_value(__wrap_dlopen, flags, RTLD_NOW);
will_return(__wrap_dlopen, NULL);
+ expect_string(__wrap_dlopen, filename, "@PREFIX@" "libtss2-libtss2-tcti-mssim.so.0.so.0");
+ expect_value(__wrap_dlopen, flags, RTLD_NOW);
+ will_return(__wrap_dlopen, NULL);
+ expect_string(__wrap_dlopen, filename, "@PREFIX@/libtss2-tcti-libtss2-tcti-mssim.so.0.so");
expect_string(__wrap_dlopen, filename, "libtss2-libtss2-tcti-mssim.so.0.so");
expect_value(__wrap_dlopen, flags, RTLD_NOW);
will_return(__wrap_dlopen, NULL);
+ expect_string(__wrap_dlopen, filename, "@PREFIX@" "libtss2-libtss2-tcti-mssim.so.0.so");
+ expect_value(__wrap_dlopen, flags, RTLD_NOW);
+ will_return(__wrap_dlopen, NULL);
TSS2_RC r;
TSS2_TCTI_CONTEXT *tcti;
@@ -496,6 +574,15 @@ test_info_from_name_handle_fail (void **state)
@@ -619,18 +804,33 @@ test_info_from_name_handle_fail (void **state)
expect_string(__wrap_dlopen, filename, "foo");
expect_value(__wrap_dlopen, flags, RTLD_NOW);
will_return(__wrap_dlopen, NULL);
+ expect_string(__wrap_dlopen, filename, "@PREFIX@" "foo");
+ expect_value(__wrap_dlopen, flags, RTLD_NOW);
+ will_return(__wrap_dlopen, NULL);
expect_string(__wrap_dlopen, filename, "libtss2-tcti-foo.so.0");
expect_value(__wrap_dlopen, flags, RTLD_NOW);
will_return(__wrap_dlopen, NULL);
+ expect_string(__wrap_dlopen, filename, "@PREFIX@" "libtss2-tcti-foo.so.0");
+ expect_value(__wrap_dlopen, flags, RTLD_NOW);
+ will_return(__wrap_dlopen, NULL);
expect_string(__wrap_dlopen, filename, "libtss2-tcti-foo.so");
expect_value(__wrap_dlopen, flags, RTLD_NOW);
will_return(__wrap_dlopen, NULL);
+ expect_string(__wrap_dlopen, filename, "@PREFIX@/foo");
+ expect_string(__wrap_dlopen, filename, "@PREFIX@" "libtss2-tcti-foo.so");
+ expect_value(__wrap_dlopen, flags, RTLD_NOW);
+ will_return(__wrap_dlopen, NULL);
+ expect_string(__wrap_dlopen, filename, "@PREFIX@/libtss2-tcti-foo.so.0");
expect_string(__wrap_dlopen, filename, "libtss2-foo.so.0");
expect_value(__wrap_dlopen, flags, RTLD_NOW);
will_return(__wrap_dlopen, NULL);
+ expect_string(__wrap_dlopen, filename, "@PREFIX@" "libtss2-foo.so.0");
+ expect_value(__wrap_dlopen, flags, RTLD_NOW);
+ will_return(__wrap_dlopen, NULL);
+ expect_string(__wrap_dlopen, filename, "@PREFIX@/libtss2-tcti-foo.so");
expect_string(__wrap_dlopen, filename, "libtss2-foo.so");
expect_value(__wrap_dlopen, flags, RTLD_NOW);
will_return(__wrap_dlopen, NULL);
+ expect_string(__wrap_dlopen, filename, "@PREFIX@" "libtss2-foo.so");
+ expect_value(__wrap_dlopen, flags, RTLD_NOW);
+ will_return(__wrap_dlopen, NULL);
TSS2_RC rc = info_from_name ("foo", &info, &data);
assert_int_equal (rc, TSS2_TCTI_RC_NOT_SUPPORTED);
@@ -612,6 +699,15 @@ test_tctildr_get_info_from_name (void **state)
@@ -741,18 +941,33 @@ test_tctildr_get_info_from_name (void **state)
expect_string(__wrap_dlopen, filename, "foo");
expect_value(__wrap_dlopen, flags, RTLD_NOW);
will_return(__wrap_dlopen, NULL);
+ expect_string(__wrap_dlopen, filename, "@PREFIX@" "foo");
+ expect_value(__wrap_dlopen, flags, RTLD_NOW);
+ will_return(__wrap_dlopen, NULL);
expect_string(__wrap_dlopen, filename, "libtss2-tcti-foo.so.0");
expect_value(__wrap_dlopen, flags, RTLD_NOW);
will_return(__wrap_dlopen, NULL);
+ expect_string(__wrap_dlopen, filename, "@PREFIX@" "libtss2-tcti-foo.so.0");
+ expect_value(__wrap_dlopen, flags, RTLD_NOW);
+ will_return(__wrap_dlopen, NULL);
expect_string(__wrap_dlopen, filename, "libtss2-tcti-foo.so");
expect_value(__wrap_dlopen, flags, RTLD_NOW);
will_return(__wrap_dlopen, NULL);
+ expect_string(__wrap_dlopen, filename, "@PREFIX@/foo");
+ expect_string(__wrap_dlopen, filename, "@PREFIX@" "libtss2-tcti-foo.so");
+ expect_value(__wrap_dlopen, flags, RTLD_NOW);
+ will_return(__wrap_dlopen, NULL);
+ expect_string(__wrap_dlopen, filename, "@PREFIX@/libtss2-tcti-foo.so.0");
expect_string(__wrap_dlopen, filename, "libtss2-foo.so.0");
expect_value(__wrap_dlopen, flags, RTLD_NOW);
will_return(__wrap_dlopen, NULL);
+ expect_string(__wrap_dlopen, filename, "@PREFIX@" "libtss2-foo.so.0");
+ expect_value(__wrap_dlopen, flags, RTLD_NOW);
+ will_return(__wrap_dlopen, NULL);
+ expect_string(__wrap_dlopen, filename, "@PREFIX@/libtss2-tcti-foo.so");
expect_string(__wrap_dlopen, filename, "libtss2-foo.so");
expect_value(__wrap_dlopen, flags, RTLD_NOW);
will_return(__wrap_dlopen, NULL);
+ expect_string(__wrap_dlopen, filename, "@PREFIX@" "libtss2-foo.so");
+ expect_value(__wrap_dlopen, flags, RTLD_NOW);
+ will_return(__wrap_dlopen, NULL);