Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-8026385

[macosx] (awt) setjmp/longjmp changes the process signal mask on OS X

    Details

    • Type: Bug
    • Status: Resolved
    • Priority: P4
    • Resolution: Fixed
    • Affects Version/s: 7u40
    • Fix Version/s: 9
    • Component/s: client-libs
    • Labels:
    • Subcomponent:
    • Resolved In Build:
      b22
    • OS:
      os_x

      Backports

        Description

        See JDK-8023786 for a complete description of the problem.

        I see several places in the awt and font code that uses setjmp/longjmp which should be changed to use _setjmp/_longjmp on OS X:

        $ grep -r longjmp jdk/src
        share/native/sun/awt/image/jpeg/imageioJPEG.c: longjmp(myerr->setjmp_buffer, 1);
        share/native/sun/awt/image/jpeg/jpegdecoder.c: longjmp(myerr->setjmp_buffer, 1);
        share/native/sun/awt/libpng/png.h:PNG_FUNCTION(void, (PNGCAPI *png_longjmp_ptr), PNGARG((jmp_buf, int)), typedef);
        share/native/sun/awt/libpng/png.h:PNG_EXPORT(8, jmp_buf*, png_set_longjmp_fn, (png_structp png_ptr,
        share/native/sun/awt/libpng/png.h: png_longjmp_ptr longjmp_fn, size_t jmp_buf_size));
        share/native/sun/awt/libpng/png.h: (*png_set_longjmp_fn((png_ptr), longjmp, sizeof (jmp_buf)))
        share/native/sun/awt/libpng/png.h:PNG_EXPORTA(9, void, png_longjmp, (png_structp png_ptr, int val),
        share/native/sun/awt/libpng/pngerror.c: png_longjmp(png_ptr, 1);
        share/native/sun/awt/libpng/pngerror.c:png_longjmp,(png_structp png_ptr, int val),PNG_NORETURN)
        share/native/sun/awt/libpng/pngerror.c: png_ptr->longjmp_fn(tmp_jmpbuf, val);
        share/native/sun/awt/libpng/pngerror.c: png_ptr->longjmp_fn(png_ptr->longjmp_buffer, val);
        share/native/sun/awt/splashscreen/splashscreen_jpeg.c: longjmp(myerr->setjmp_buffer, 1);
        solaris/native/sun/awt/gtk2_interface.c: longjmp(j, NO_SYMBOL_EXCEPTION);
        solaris/native/sun/awt/gtk2_interface.c: longjmp(j, NO_SYMBOL_EXCEPTION);
        solaris/native/sun/awt/gtk2_interface.c: longjmp(j, NO_SYMBOL_EXCEPTION);

          Attachments

            Issue Links

              Activity

                People

                • Assignee:
                  ddehaven David Dehaven (Inactive)
                  Reporter:
                  sla Staffan Larsen (Inactive)
                • Votes:
                  0 Vote for this issue
                  Watchers:
                  5 Start watching this issue

                  Dates

                  • Created:
                    Updated:
                    Resolved: