Bug#612341: shlib-calls-exit in lib*jpeg*'s
Hi Bill,
Thanks for the quick reply:
> The rationale for this lintian test is ridiculous.
why? to me it sounds like a sensible test.
> If you look at the code of libjpeg, you will a single instance of call to exit
> with a large comment explaining how the user can override it.
> I a msure you can find it.
;-) thank you for your trust! I guess you meant the last one in the
listing below (since cdjpeg seems to be intended only for apps?)
what about jerror.c one?
novo:/tmp/libjpeg8-8d
$> grep -r -l 'exit(' . | xargs grep -L 'main' | grep -v -e depcomp -e jmemdosa.asm -e 'debian/' | xargs grep -B10 '^[^#].*exit *('
./cdjpeg.c-static j_common_ptr sig_cinfo;
./cdjpeg.c-
./cdjpeg.c-void /* must be global for Manx C */
./cdjpeg.c-signal_catcher (int signum)
./cdjpeg.c-{
./cdjpeg.c- if (sig_cinfo != NULL) {
./cdjpeg.c- if (sig_cinfo->err != NULL) /* turn off trace output */
./cdjpeg.c- sig_cinfo->err->trace_level = 0;
./cdjpeg.c- jpeg_destroy(sig_cinfo); /* clean up memory allocation & temp files */
./cdjpeg.c- }
./cdjpeg.c: exit(EXIT_FAILURE);
--
./cdjpeg.c-read_stdin (void)
./cdjpeg.c-{
./cdjpeg.c- FILE * input_file = stdin;
./cdjpeg.c-
./cdjpeg.c-#ifdef USE_SETMODE /* need to hack file mode? */
./cdjpeg.c- setmode(fileno(stdin), O_BINARY);
./cdjpeg.c-#endif
./cdjpeg.c-#ifdef USE_FDOPEN /* need to re-open in binary mode? */
./cdjpeg.c- if ((input_file = fdopen(fileno(stdin), READ_BINARY)) == NULL) {
./cdjpeg.c- fprintf(stderr, "Cannot reopen stdin\n");
./cdjpeg.c: exit(EXIT_FAILURE);
--
./cdjpeg.c-write_stdout (void)
./cdjpeg.c-{
./cdjpeg.c- FILE * output_file = stdout;
./cdjpeg.c-
./cdjpeg.c-#ifdef USE_SETMODE /* need to hack file mode? */
./cdjpeg.c- setmode(fileno(stdout), O_BINARY);
./cdjpeg.c-#endif
./cdjpeg.c-#ifdef USE_FDOPEN /* need to re-open in binary mode? */
./cdjpeg.c- if ((output_file = fdopen(fileno(stdout), WRITE_BINARY)) == NULL) {
./cdjpeg.c- fprintf(stderr, "Cannot reopen stdout\n");
./cdjpeg.c: exit(EXIT_FAILURE);
--
./jerror.c- * an error. Typically one would longjmp somewhere instead of exiting.
./jerror.c- * The setjmp buffer can be made a private field within an expanded error
./jerror.c- * handler object. Note that the info needed to generate an error message
./jerror.c- * is stored in the error object, so you can generate the message now or
./jerror.c- * later, at your convenience.
./jerror.c- * You should make sure that the JPEG object is cleaned up (with jpeg_abort
./jerror.c- * or jpeg_destroy) at some point.
./jerror.c- */
./jerror.c-
./jerror.c-METHODDEF(void)
./jerror.c:error_exit (j_common_ptr cinfo)
./jerror.c-{
./jerror.c- /* Always display the message */
./jerror.c- (*cinfo->err->output_message) (cinfo);
./jerror.c-
./jerror.c- /* Let the memory manager delete any temp files before we die */
./jerror.c- jpeg_destroy(cinfo);
./jerror.c-
./jerror.c: exit(EXIT_FAILURE);
--
./rdgif.c-#ifdef GIF_SUPPORTED
./rdgif.c-
./rdgif.c-/*
./rdgif.c- * The module selection routine for GIF format input.
./rdgif.c- */
./rdgif.c-
./rdgif.c-GLOBAL(cjpeg_source_ptr)
./rdgif.c-jinit_read_gif (j_compress_ptr cinfo)
./rdgif.c-{
./rdgif.c- fprintf(stderr, "GIF input is unsupported for legal reasons. Sorry.\n");
./rdgif.c: exit(EXIT_FAILURE);
--
Yaroslav O. Halchenko
http://neuro.debian.net http://www.pymvpa.org http://www.fail2ban.org
Senior Research Associate, Psychological and Brain Sciences Dept.
Dartmouth College, 419 Moore Hall, Hinman Box 6207, Hanover, NH 03755
Phone: +1 (603) 646-9834 Fax: +1 (603) 646-1419
WWW: http://www.linkedin.com/in/yarik
Reply to: