libopie exports conflicting symbols
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
opie (Ubuntu) |
Fix Released
|
Wishlist
|
Unassigned |
Bug Description
libopie.a exports the functions md5_init, md5_append and md5_finish. These are quite common names that should be avoided by a central library. The problem arises when any binary that also uses these symbol names is linked to libopie.a, especially when this happens indirectly.
Concretely, I ran into a problem when trying to use dovecot with libpam-opie. pam_opie.so contains (part of) libopie.a, and thus also the global functions md5_init, etc. Dovecot contains md5_init, md5_update and md5_finish as global functions. Note that libopie and dovecot differ in md5_append vs md5_update, yet share the other function names.
As a result, pam_opie.so will use part dovecot functions (per standard plt resolution), and part its own (since md5_append is not defined my dovecot). That results in an invalid md5 calculation and thus in failed authentication.
Possible solution:
libopie.a should not export such common names, and instead prefix them appropriately. Alternatively use hidden visibility if applicable.
Description: Ubuntu 9.10
Release: 9.10
libopie-dev:
Installed: 2.40~dfsg-0ubuntu1
Candidate: 2.40~dfsg-0ubuntu1
Version table:
*** 2.40~dfsg-0ubuntu1 0
500 http://
100 /var/lib/
libpam-opie:
Installed: 0.21-8build2
Candidate: 0.21-8build2
Version table:
*** 0.21-8build2 0
500 http://
100 /var/lib/
Related branches
Changed in opie (Ubuntu): | |
importance: | Undecided → Wishlist |
status: | New → Confirmed |
This is fixed upstream in opie-2.4.1-test1. Then let's get your fix into maverick.