diff options
author | Stefan Metzmacher <metze@samba.org> | 2021-08-23 12:56:15 +0000 |
---|---|---|
committer | Stefan Metzmacher <metze@samba.org> | 2021-11-30 15:53:34 +0000 |
commit | 6745968a15497c88646c1213ec6a8b198e624abb (patch) | |
tree | 2eb212bc4f6731b7b88454a7687c16c6e73b1f1f /script | |
parent | 4862a8ff2f02cf7c735d666520846f6a0d63c6b0 (diff) | |
download | samba-6745968a15497c88646c1213ec6a8b198e624abb.tar.gz |
script/autobuild.py: make sure nss, pam and krb5 plugins don't provide unexpected symbols
BUG: https://bugzilla.samba.org/show_bug.cgi?id=14780
Signed-off-by: Stefan Metzmacher <metze@samba.org>
Reviewed-by: Andrew Bartlett <abartlet@samba.org>
Reviewed-by: Andreas Schneider <asn@samba.org>
Diffstat (limited to 'script')
-rwxr-xr-x | script/autobuild.py | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/script/autobuild.py b/script/autobuild.py index 5bae1dbdbaf..041169e022e 100755 --- a/script/autobuild.py +++ b/script/autobuild.py @@ -120,6 +120,12 @@ else: CLEAN_SOURCE_TREE_CMD = "cd ${TEST_SOURCE_DIR} && script/clean-source-tree.sh" +def nm_grep_symbols(sofile, expected_symbols=""): + return "nm " + sofile + " | " + \ + "egrep -v ' (__bss_start|_edata|_init|_fini|_end)' | " + \ + "egrep -v '" + expected_symbols + "' |" + \ + "egrep ' [BDGTRVWS] ' && exit 1; exit 0;" + if args: # If we are only running specific test, # do not sleep randomly to wait for it to start @@ -842,6 +848,18 @@ tasks = { ("nondevel-no-samba-nss_wins", "ldd ./bin/plugins/libnss_wins.so.2 | grep 'samba' && exit 1; exit 0"), ("nondevel-no-samba-libwbclient", "ldd ./bin/shared/libwbclient.so.0 | grep 'samba' && exit 1; exit 0"), ("nondevel-no-samba-pam_winbind", "ldd ./bin/plugins/pam_winbind.so | grep -v 'libtalloc.so.2' | grep 'samba' && exit 1; exit 0"), + ("nondevel-no-public-nss_winbind", + nm_grep_symbols("./bin/plugins/libnss_winbind.so.2", " T _nss_winbind_")), + ("nondevel-no-public-nss_wins", + nm_grep_symbols("./bin/plugins/libnss_wins.so.2", " T _nss_wins_")), + ("nondevel-no-public-libwbclient", + nm_grep_symbols("./bin/shared/libwbclient.so.0", " T wbc")), + ("nondevel-no-public-pam_winbind", + nm_grep_symbols("./bin/plugins/pam_winbind.so", "T pam_sm_")), + ("nondevel-no-public-winbind_krb5_locator", + nm_grep_symbols("./bin/plugins/winbind_krb5_locator.so", " D resolve\>")), + ("nondevel-no-public-async_dns_krb5_locator", + nm_grep_symbols("./bin/plugins/async_dns_krb5_locator.so", " D resolve\>")), ("nondevel-install", "make -j install"), ("nondevel-dist", "make dist"), @@ -853,6 +871,18 @@ tasks = { ("prefix-no-samba-nss_wins", "ldd ${PREFIX_DIR}/lib/libnss_wins.so.2 | grep 'samba' && exit 1; exit 0"), ("prefix-no-samba-libwbclient", "ldd ${PREFIX_DIR}/lib/libwbclient.so.0 | grep 'samba' && exit 1; exit 0"), ("prefix-no-samba-pam_winbind", "ldd ${PREFIX_DIR}/lib/security/pam_winbind.so | grep -v 'libtalloc.so.2' | grep 'samba' && exit 1; exit 0"), + ("prefix-no-public-nss_winbind", + nm_grep_symbols("${PREFIX_DIR}/lib/libnss_winbind.so.2", " T _nss_winbind_")), + ("prefix-no-public-nss_wins", + nm_grep_symbols("${PREFIX_DIR}/lib/libnss_wins.so.2", " T _nss_wins_")), + ("prefix-no-public-libwbclient", + nm_grep_symbols("${PREFIX_DIR}/lib/libwbclient.so.0", " T wbc")), + ("prefix-no-public-pam_winbind", + nm_grep_symbols("${PREFIX_DIR}/lib/security/pam_winbind.so", "T pam_sm_")), + ("prefix-no-public-winbind_krb5_locator", + nm_grep_symbols("${PREFIX_DIR}/lib/krb5/winbind_krb5_locator.so", " D resolve\>")), + ("prefix-no-public-async_dns_krb5_locator", + nm_grep_symbols("${PREFIX_DIR}/lib/krb5/async_dns_krb5_locator.so", " D resolve\>")), # retry with all modules shared ("allshared-distclean", "make distclean"), @@ -866,6 +896,18 @@ tasks = { ("allshared-no-samba-nss_wins", "ldd ./bin/plugins/libnss_wins.so.2 | grep 'samba' && exit 1; exit 0"), ("allshared-no-samba-libwbclient", "ldd ./bin/plugins/libwbclient.so.0 | grep 'samba' && exit 1; exit 0"), ("allshared-no-samba-pam_winbind", "ldd ./bin/plugins/pam_winbind.so | grep -v 'libtalloc.so.2' | grep 'samba' && exit 1; exit 0"), + ("allshared-no-public-nss_winbind", + nm_grep_symbols("./bin/plugins/libnss_winbind.so.2", " T _nss_winbind_")), + ("allshared-no-public-nss_wins", + nm_grep_symbols("./bin/plugins/libnss_wins.so.2", " T _nss_wins_")), + ("allshared-no-public-libwbclient", + nm_grep_symbols("./bin/plugins/libwbclient.so.0", " T wbc")), + ("allshared-no-public-pam_winbind", + nm_grep_symbols("./bin/plugins/pam_winbind.so", "T pam_sm_")), + ("allshared-no-public-winbind_krb5_locator", + nm_grep_symbols("./bin/plugins/winbind_krb5_locator.so", " D resolve\>")), + ("allshared-no-public-async_dns_krb5_locator", + nm_grep_symbols("./bin/plugins/async_dns_krb5_locator.so", " D resolve\>")), ], }, |