On Tue, Aug 28, 2012 at 01:49:34AM +0200, Thibaut VARENE wrote: > While I'm there, one thing I should probably point out while you're still in > RC: > > X: libotr5: shlib-calls-exit usr/lib/libotr.so.5.0.0 > N: > N: The listed shared library calls the C library exit() or _exit() > N: functions. > N: > N: In the case of an error, the library should instead return an > N: appropriate error code to the calling program which can then determine > N: how to handle the error, including performing any required clean-up. > N: > N: In most cases, removing the call should be discussed with upstream, > N: particularly as it may produce an ABI change. > N: > N: Severity: wishlist, Certainty: possible > N: > N: Check: shared-libs, Type: binary, udeb > N: > N: This tag is marked experimental, which means that the code that > N: generates it is not as well-tested as the rest of Lintian and might > N: still give surprising results. Feel free to ignore experimental tags > N: that do not seem to make sense, though of course bug reports are always > N: welcomed. > N: > > That aside, it builds fine, including with hardening. Uploaded to > experimental queue to replace the buggy rc1 that was previously > uploaded. > > HTH
Indeed, otrl_init(ver_major, ver_minor, ver_sub) calls exit(1) if the passed version numbers are incompatible with the library's actual version. Seeing as how it's intended to be called from this macro: #define OTRL_INIT do { \ otrl_init(OTRL_VERSION_MAJOR, OTRL_VERSION_MINOR, OTRL_VERSION_SUB); \ } while(0) I suppose we could change otrl_init to return an error code, and change the *macro* to call exit() upon otrl_init returning an error. Although technically the ABI would change, the API wouldn't. I will consider this for inclusion before release. Thanks for the note! - Ian _______________________________________________ OTR-dev mailing list OTR-dev@lists.cypherpunks.ca http://lists.cypherpunks.ca/mailman/listinfo/otr-dev