| From: | Martin Münstermann <mmuenstermann(at)betrusted(dot)com> |
|---|---|
| To: | pgsql-hackers(at)postgresql(dot)org |
| Subject: | symbol name clash with libpq.so: md5_hash |
| Date: | 2005-06-29 09:41:04 |
| Message-ID: | 42C26CB0.1070709@betrusted.com |
| Views: | Whole Thread | Raw Message | Download mbox | Resend email |
| Thread: | |
| Lists: | pgsql-hackers |
Hi,
after linking my database client application with a crypto library (as
shared library), I noticed that I couldn't connect to postgresql any
longer. Error message was "Password authentication failed".
After some time I found out that the issue was caused by both the crypto
library and libpq.so defining the symbol md5_hash.
After renaming the function name (thanks to open source!), the error
went away.
Wouldn't it be a good idea to have all exported symbols in libpq.so
carry a postgres related prefix like 'PQ', 'pq', or 'pg_' (most of them
already do)? This way symbol name clashes would become less probable.
Symbols in question (postgresql 80 on solaris) include (nm libpq.so |
fgrep ' T '):
EncryptMD5, SockAddr_cidr_mask, check_sigpipe_handler, freeaddrinfo_all,
getaddrinfo_all, getnameinfo_all, md5_hash, promote_v4_to_v6_addr,
promote_v4_to_v6_mask, rangeSockAddr, set_noblock.
AFAICS these functions are used by the server and maybe not all of these
functions need to be exported to the shared client libpq anyway?
Regards,
Martin
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Hannu Krosing | 2005-06-29 10:06:48 | Re: Implementing SQL/PSM for PG 8.2 - debugger |
| Previous Message | Mark Cave-Ayland | 2005-06-29 09:33:28 | Re: Implementing SQL/PSM for PG 8.2 - debugger |