NetBSD-Bugs archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

lib/59071: libsaslc leaks private symbols



>Number:         59071
>Category:       lib
>Synopsis:       libsaslc leaks private symbols
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    lib-bug-people
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Wed Feb 12 03:55:00 +0000 2025
>Originator:     Greg A. Woods
>Release:        NetBSD current et all
>Organization:
Planix, Inc.; Kelowna, BC; Canada
>Environment:
>Description:
	libsaslc leaks private symbols
>How-To-Repeat:
	build with MKKERBEROS=no, observe saslc__mech_gssapi is missing
	from the expected symbols
>Fix:
	use -fvisibility=hidden, declare public symbols, update expected
	symbols list, (bump major?)

diff --git a/crypto/external/bsd/libsaslc/dist/include/saslc.h b/crypto/external/bsd/libsaslc/dist/include/saslc.h
index dea4de9cec19..f0992e5d9d39 100644
--- a/crypto/external/bsd/libsaslc/dist/include/saslc.h
+++ b/crypto/external/bsd/libsaslc/dist/include/saslc.h
@@ -64,27 +64,40 @@ typedef struct saslc_t saslc_t;
 typedef struct saslc_sess_t saslc_sess_t;
 
 /* begin and end */
+__attribute__((visibility("default")))
 saslc_t *saslc_alloc(void);
+__attribute__((visibility("default")))
 int saslc_init(saslc_t *, const char *, const char *);
+__attribute__((visibility("default")))
 int saslc_end(saslc_t *);
 
 /* error */
+__attribute__((visibility("default")))
 const char *saslc_strerror(saslc_t *);
+__attribute__((visibility("default")))
 const char *saslc_sess_strerror(saslc_sess_t *);
 
 /* session begin and end */
+__attribute__((visibility("default")))
 saslc_sess_t *saslc_sess_init(saslc_t *, const char *, const char *);
+__attribute__((visibility("default")))
 void saslc_sess_end(saslc_sess_t *);
 
 /* session properties */
+__attribute__((visibility("default")))
 int saslc_sess_setprop(saslc_sess_t *, const char *, const char *);
+__attribute__((visibility("default")))
 const char *saslc_sess_getprop(saslc_sess_t *, const char *);
+__attribute__((visibility("default")))
 const char *saslc_sess_getmech(saslc_sess_t *);
 
 /* session management */
+__attribute__((visibility("default")))
 int saslc_sess_cont(saslc_sess_t *, const void *, size_t, void **, size_t *);
+__attribute__((visibility("default")))
 ssize_t saslc_sess_encode(saslc_sess_t *, const void *, size_t, void **,
     size_t *);
+__attribute__((visibility("default")))
 ssize_t saslc_sess_decode(saslc_sess_t *, const void *, size_t, void **,
     size_t *);
 
diff --git a/crypto/external/bsd/libsaslc/lib/Makefile b/crypto/external/bsd/libsaslc/lib/Makefile
index 2b6233e9984e..af0dfab4e84a 100644
--- a/crypto/external/bsd/libsaslc/lib/Makefile
+++ b/crypto/external/bsd/libsaslc/lib/Makefile
@@ -28,6 +28,8 @@ SRCS+= xsess.c
 
 COPTS.msg.c = -Wno-format-nonliteral
 
+COPTS+= -fvisibility=hidden
+
 CPPFLAGS+=-I${EXTDIST}/include
 WARNS?=4
 
diff --git a/crypto/external/bsd/libsaslc/lib/saslc.expsym b/crypto/external/bsd/libsaslc/lib/saslc.expsym
index c953f30f0984..b110ca65c255 100644
--- a/crypto/external/bsd/libsaslc/lib/saslc.expsym
+++ b/crypto/external/bsd/libsaslc/lib/saslc.expsym
@@ -1,48 +1,4 @@
-saslc__buffer32_create
-saslc__buffer32_destroy
-saslc__buffer32_fetch
-saslc__buffer_create
-saslc__buffer_destroy
-saslc__buffer_fetch
-saslc__crypto_decode_base64
-saslc__crypto_encode_base64
-saslc__crypto_hash_to_hex
-saslc__crypto_hmac_md5_hash
-saslc__crypto_hmac_md5_hex
-saslc__crypto_md5_hash
-saslc__crypto_md5_hex
-saslc__crypto_nonce
-saslc__dict_create
-saslc__dict_destroy
-saslc__dict_get
-saslc__dict_get_len
-saslc__dict_insert
-saslc__dict_remove
-saslc__error_get_strerror
-saslc__list_append
-saslc__list_flags
-saslc__list_free
-saslc__list_log
-saslc__list_parse
-saslc__mech_anonymous
-saslc__mech_crammd5
-saslc__mech_digestmd5
-saslc__mech_external
-saslc__mech_generic_create
-saslc__mech_generic_destroy
-saslc__mech_gssapi
-saslc__mech_list_create
-saslc__mech_list_destroy
-saslc__mech_list_get
-saslc__mech_login
-saslc__mech_plain
-saslc__mech_qop_tbl
-saslc__mech_strdup
-saslc__msg_syslog
-saslc__parser_config
-saslc__parser_is_true
 saslc_alloc
-saslc_debug
 saslc_end
 saslc_init
 saslc_sess_cont



Home | Main Index | Thread Index | Old Index