As noted at a fedora packaging review (https://bugzilla.redhat.com/show_bug.cgi?id=491490), an automated checking tool detected that libghmm.so generates exit() calls, which prevent proper deallocation of system resources. For the purposes of fedora review, it is required that upstream (you :) ) be notified.
This corresponds to svn version 2251.
The following files are included in libghmm.so, and the output of
$ find ./ -name \*.c -exec grep -H exit {} \;
is posted below.
libghmm_la_SOURCES= ghmm.h \
ghmmconfig.h \
rng.c rng.h \
randvar.c randvar.h \
matrixop.c matrixop.h \
gauss_tail.c \
mes.c mes.h \
ghmm_internals.c ghmm_internals.h \
mprintf.c mprintf.h \
vector.c vector.h \
matrix.c matrix.h \
scanner.c scanner.h \
linkedlist.c \
sequence.c sequence.h \
psequence.c psequence.h \
xmlreader.c xmlreader.h \
xmlwriter.c xmlwriter.h \
model.c model.h \
foba.c foba.h \
viterbi.c viterbi.h \
reestimate.c reestimate.h \
gradescent.c gradescent.h \
kbest.c kbest.h \
discrime.c discrime.h \
modelutil.c \
cluster.c cluster.h \
root_finder.c \
smodel.c smodel.h \
sfoba.c sfoba.h \
sviterbi.c sviterbi.h \
sreestimate.c sreestimate.h \
scluster.c scluster.h \
sgenerate.c sgenerate.h \
smixturehmm.c smixturehmm.h \
smap_classify.c smap_classify.h \
sdmodel.c sdmodel.h \
sdfoba.c sdfoba.h \
sdviterbi.c \
pmodel.c pmodel.h \
pviterbi.c pviterbi.h \
pviterbi_propagate.c pviterbi_propagate.h
./sgenerate.c: /* reached final state, exit while loop */
./sgenerate.c: /* reached final state, exit while loop */
./model.c: exit (1);
./model.c: exit (1);
./model.c: exit (1);
./model.c: exit (1);
./model.c: /* get the probability, exit, if the index is -1 */
./model.c: exit (1);
./model.c:/* exit(1); */
./model.c:/* exit(1); */
./model.c:/* exit(1); */
./kbest.c: exit (1);
./kbest.c: exit (1);
./kbest.c: exit (1);
./kbest.c: exit (1);
./kbest.c: exit (1);
./kbest.c: exit (1);
./kbest.c: exit (1);
./smixturehmm.c: int exitcode = -1;
./smixturehmm.c: exitcode = 0;
./smixturehmm.c: ighmm_mes (MES_WIN, "\n(%2.2T): Program finished with exitcode %d.\n", exitcode);
./smixturehmm.c: ighmm_mes_exit ();
./smixturehmm.c: return (exitcode);
./ghmm_internals.c: exit(3);
./mes.c:void ighmm_mes_exit (void)
./mes.c:} /* ighmm_mes_exit */
./root_finder.c: exit (1);