[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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: