When building a rpm package for openSUSE rpmlint complains about an issue inside the ktoblzcheck library:
libktoblzcheck1.x86_64: W: shared-lib-calls-exit /usr/lib64/libktoblzcheck.so.1.5.26 exit@GLIBC_2.2.5
This library package calls exit() or _exit(), probably in a non-fork()
context. Doing so from a library is strongly discouraged - when a library
function calls exit(), it prevents the calling program from handling the
error, reporting it to the user, closing files properly, and cleaning up any
state that the program has. It is preferred for the library to return an
actual error code and let the calling program decide how to handle the
situation.
src/lib/ktoblzcheck.cc:201: exit(1);
src/lib/ktoblzcheck.cc:206: exit(1);
src/lib/ktoblzcheck.cc:233: exit(1);
These references are in constructor of class AccountNumberCheck, where a different approach is required.
src/lib/ktoblzcheck.cc:250: exit(1);
src/lib/ktoblzcheck.cc:261: exit(1);
src/lib/ktoblzcheck.cc:267: exit(1);
These locations are in AccountNumberCheck::createChecker(), which should return a null pointer instead.