diff options
author | Jelmer Vernooij <jelmer@samba.org> | 2012-11-05 19:36:30 +0100 |
---|---|---|
committer | Andrew Bartlett <abartlet@samba.org> | 2012-11-06 08:27:44 +1100 |
commit | ec3cbb6c476698523c9b5ac047787df101746891 (patch) | |
tree | a2a8df4e4f97eba007e6048cb0a120e6bed138ff | |
parent | d02c8ba122cef7d8b254e5be3ae757eb3bb14235 (diff) | |
download | samba-ec3cbb6c476698523c9b5ac047787df101746891.tar.gz samba-ec3cbb6c476698523c9b5ac047787df101746891.tar.bz2 samba-ec3cbb6c476698523c9b5ac047787df101746891.zip |
wafsamba.abi: Fix abi_match with both excludes and includes.
This fixes a regression introduced by 9c3e294400234ebdf9b98031bae583524fd0b0ac
which caused internal symbols in libldb to be exposed.
Bug: https://bugzilla.samba.org/show_bug.cgi?id=9357
Signed-off-by: Andrew Bartlett <abartlet@samba.org>
Reviewed-by: Andrew Bartlett <abartlet@samba.org>
Reviewed-by: Stephen Gallagher <sgallagh@redhat.com>
-rw-r--r-- | buildtools/wafsamba/samba_abi.py | 6 | ||||
-rw-r--r-- | buildtools/wafsamba/tests/test_abi.py | 17 |
2 files changed, 20 insertions, 3 deletions
diff --git a/buildtools/wafsamba/samba_abi.py b/buildtools/wafsamba/samba_abi.py index c325b3323e..488dab8837 100644 --- a/buildtools/wafsamba/samba_abi.py +++ b/buildtools/wafsamba/samba_abi.py @@ -191,12 +191,12 @@ def abi_write_vscript(f, libname, current_version, versions, symmap, abi_match): f.write("\t\t%s;\n" % x) else: f.write("\t\t*;\n") - if len(local_abi) > 0: + if abi_match != ["*"]: f.write("\tlocal:\n") for x in local_abi: f.write("\t\t%s;\n" % x[1:]) - elif abi_match != ["*"]: - f.write("\tlocal: *;\n") + if len(global_abi) > 0: + f.write("\t\t*;\n") f.write("};\n") diff --git a/buildtools/wafsamba/tests/test_abi.py b/buildtools/wafsamba/tests/test_abi.py index 42c4697cde..bba78c1ba0 100644 --- a/buildtools/wafsamba/tests/test_abi.py +++ b/buildtools/wafsamba/tests/test_abi.py @@ -101,3 +101,20 @@ MYLIB_0.1 { \t\texc_*; }; """) + + def test_excludes_and_includes(self): + f = StringIO() + abi_write_vscript(f, "MYLIB", "1.0", [], { + "pub_foo": "1.0", + "exc_bar": "1.0", + "other": "1.0" + }, ["pub_*", "!exc_*"]) + self.assertEquals(f.getvalue(), """\ +1.0 { +\tglobal: +\t\tpub_*; +\tlocal: +\t\texc_*; +\t\t*; +}; +""") |