From 2ba62f67da9b2ae94d3d33c56fa9664082c83d94 Mon Sep 17 00:00:00 2001 From: Christian Grothoff Date: Fri, 7 Mar 2014 10:54:40 +0000 Subject: [PATCH] -fix linkage issue that could cause a transport service crash on exit for certain NAT configurations --- src/nat/nat_mini.c | 2 +- src/peerinfo-tool/Makefile.am | 7 ++++--- src/transport/Makefile.am | 9 ++++++++- 3 files changed, 13 insertions(+), 5 deletions(-) diff --git a/src/nat/nat_mini.c b/src/nat/nat_mini.c index 7a2b08f46..877c385d5 100644 --- a/src/nat/nat_mini.c +++ b/src/nat/nat_mini.c @@ -625,7 +625,7 @@ GNUNET_NAT_mini_map_start (uint16_t port, /** * Process output from our 'unmap' command. * - * @param cls the 'struct GNUNET_NAT_MiniHandle' + * @param cls the `struct GNUNET_NAT_MiniHandle` * @param line line of output, NULL at the end */ static void diff --git a/src/peerinfo-tool/Makefile.am b/src/peerinfo-tool/Makefile.am index 01c1f3473..74f1edbad 100644 --- a/src/peerinfo-tool/Makefile.am +++ b/src/peerinfo-tool/Makefile.am @@ -10,7 +10,7 @@ if USE_COVERAGE endif bin_PROGRAMS = \ - gnunet-peerinfo + gnunet-peerinfo gnunet_peerinfo_SOURCES = \ gnunet-peerinfo.c \ @@ -18,14 +18,15 @@ gnunet_peerinfo_SOURCES = \ gnunet_peerinfo_LDADD = \ $(top_builddir)/src/peerinfo/libgnunetpeerinfo.la \ + $(top_builddir)/src/nat/libgnunetnat.la \ $(top_builddir)/src/transport/libgnunettransport.la \ $(top_builddir)/src/hello/libgnunethello.la \ $(top_builddir)/src/statistics/libgnunetstatistics.la \ - $(top_builddir)/src/util/libgnunetutil.la + $(top_builddir)/src/util/libgnunetutil.la if HAVE_PYTHON check_SCRIPTS = \ - test_gnunet_peerinfo.py + test_gnunet_peerinfo.py endif if ENABLE_TEST_RUN diff --git a/src/transport/Makefile.am b/src/transport/Makefile.am index 3112f0f30..d95e7e31d 100644 --- a/src/transport/Makefile.am +++ b/src/transport/Makefile.am @@ -105,7 +105,7 @@ UNIX_QUOTA_TEST = test_quota_compliance_unix \ test_quota_compliance_unix_asymmetric if LINUX UNIX_API_ABSTRACT_TEST = test_transport_api_unix_abstract -endif +endif endif noinst_PROGRAMS = \ @@ -212,11 +212,17 @@ gnunet_service_transport_SOURCES = \ gnunet-service-transport_plugins.h gnunet-service-transport_plugins.c \ gnunet-service-transport_validation.h gnunet-service-transport_validation.c \ gnunet-service-transport_manipulation.h gnunet-service-transport_manipulation.c +# Note that while gnunet-service-transport does not use libgnunetnat +# directly, we must link against it as GNUNET_NAT_mini_map_stop will +# leave a 'dangling' task to process_unmap_output which will cause +# a crash on unloading of a plugin unless the service links against +# that library as well. gnunet_service_transport_LDADD = \ $(top_builddir)/src/transport/libgnunettransport.la \ $(top_builddir)/src/ats/libgnunetats.la \ $(top_builddir)/src/hello/libgnunethello.la \ $(top_builddir)/src/peerinfo/libgnunetpeerinfo.la \ + $(top_builddir)/src/nat/libgnunetnat.la \ $(top_builddir)/src/statistics/libgnunetstatistics.la \ $(top_builddir)/src/util/libgnunetutil.la \ $(GN_GLPK) \ @@ -1095,6 +1101,7 @@ test_quota_compliance_wlan_asymmetric_LDADD = \ test_quota_compliance_bluetooth_SOURCES = \ test_quota_compliance.c test_quota_compliance_bluetooth_LDADD = \ + $(top_builddir)/src/nat/libgnunetnat.la \ $(top_builddir)/src/transport/libgnunettransport.la \ $(top_builddir)/src/hello/libgnunethello.la \ $(top_builddir)/src/util/libgnunetutil.la \ -- 2.25.1