[OTR-dev] 4.0.0-rc3 ready to roll. Please try it out!

Ian Goldberg ian at cypherpunks.ca
Mon Aug 27 20:24:35 EDT 2012


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



More information about the OTR-dev mailing list