Created attachment 150640 [details] An example jpeg-xl file that causes Krita 5.1.0-beta1 or higher to crash SUMMARY *** NOTE: If you are reporting a crash, please try to attach a backtrace with debug symbols. See https://community.kde.org/Guidelines_and_HOWTOs/Debugging/How_to_create_useful_crash_reports *** I have been experiencing crashes whenever I try to import certain JPEG-XL files. When I run the appimage via the terminal in order to get further details, the output is a "Bus error". STEPS TO REPRODUCE 1. Obtain the example jxl file from the attachment, or from: https://drive.google.com/file/d/1y2eygJb9EBHAaIF8slcSxsVK2Hk-bYzO/view?usp=sharing 2. Using the git master version of Krita (Krita Plus) with git hash 973c92a, try to open or import the file in any way. OBSERVED RESULT The system crashes a second or two after the file import process is initiated. EXPECTED RESULT The JPEG-XL file should have opened normally like a regular image. SOFTWARE/OS VERSIONS Krita Version: 5.1.0-beta2 (git 973c92a) Hidpi: true Qt Version (compiled): 5.12.12 Version (loaded): 5.12.12 OS Information Build ABI: x86_64-little_endian-lp64 Build CPU: x86_64 CPU: x86_64 Kernel Type: linux Kernel Version: 5.4.0-122-generic Pretty Productname: Linux Mint 20.3 Product Type: linuxmint Product Version: 20.3 Desktop: X-Cinnamon Locale Languages: en_AU, en C locale: en_AU.UTF-8 QLocale current: en-AU QLocale system: en-AU QTextCodec for locale: UTF-8 OpenGL Info Vendor: "Intel" Renderer: "Mesa Intel(R) UHD Graphics (CML GT2)" Version: "4.6 (Compatibility Profile) Mesa 21.2.6" Shading language: "4.60" Requested format: QSurfaceFormat(version 3.0, options QFlags<QSurfaceFormat::FormatOption>(DeprecatedFunctions), depthBufferSize 24, redBufferSize 8, greenBufferSize 8, blueBufferSize 8, alphaBufferSize 8, stencilBufferSize 8, samples -1, swapBehavior QSurfaceFormat::DoubleBuffer, swapInterval 0, colorSpace QSurfaceFormat::DefaultColorSpace, profile QSurfaceFormat::CompatibilityProfile) Current format: QSurfaceFormat(version 4.6, options QFlags<QSurfaceFormat::FormatOption>(DeprecatedFunctions), depthBufferSize 24, redBufferSize 8, greenBufferSize 8, blueBufferSize 8, alphaBufferSize 8, stencilBufferSize 8, samples -1, swapBehavior QSurfaceFormat::DoubleBuffer, swapInterval 0, colorSpace QSurfaceFormat::DefaultColorSpace, profile QSurfaceFormat::CompatibilityProfile) Version: 4.6 Supports deprecated functions true is OpenGL ES: false supportsBufferMapping: true supportsBufferInvalidation: true forceDisableTextureBuffers: false Extensions: "GL_EXT_stencil_wrap" "GL_EXT_texture3D" "GL_EXT_texture" "GL_ARB_texture_env_add" "GL_ARB_conditional_render_inverted" "GL_ARB_texture_border_clamp" "GL_ATI_blend_equation_separate" "GL_EXT_shader_integer_mix" "GL_ARB_conservative_depth" "GL_ARB_vertex_attrib_binding" "GL_ARB_fragment_layer_viewport" "GL_EXT_blend_func_separate" "GL_ARB_multi_draw_indirect" "GL_ARB_texture_multisample" "GL_SGIS_generate_mipmap" "GL_ARB_shader_clock" "GL_ARB_framebuffer_object" "GL_ARB_texture_rgb10_a2ui" "GL_KHR_blend_equation_advanced_coherent" "GL_APPLE_packed_pixels" "GL_ARB_stencil_texturing" "GL_ARB_half_float_vertex" "GL_NV_texture_env_combine4" "GL_EXT_texture_buffer_object" "GL_EXT_demote_to_helper_invocation" "GL_ARB_texture_cube_map_array" "GL_ARB_vertex_array_object" "GL_KHR_texture_compression_astc_ldr" "GL_ARB_vertex_shader" "GL_ARB_depth_clamp" "GL_EXT_draw_buffers2" "GL_ARB_draw_instanced" "GL_MESA_shader_integer_functions" "GL_ARB_depth_texture" "GL_ARB_explicit_uniform_location" "GL_NV_primitive_restart" "GL_INTEL_performance_query" "GL_MESA_texture_signed_rgba" "GL_AMD_multi_draw_indirect" "GL_ARB_occlusion_query2" "GL_EXT_EGL_sync" "GL_ARB_shader_group_vote" "GL_ARB_program_interface_query" "GL_INTEL_shader_atomic_float_minmax" "GL_MESA_pack_invert" "GL_AMD_depth_clamp_separate" "GL_ARB_gl_spirv" "GL_ARB_shader_precision" "GL_EXT_texture_object" "GL_ARB_shading_language_packing" "GL_ATI_fragment_shader" "GL_ARB_get_texture_sub_image" "GL_KHR_texture_compression_astc_sliced_3d" "GL_ARB_texture_cube_map" "GL_MESA_framebuffer_flip_y" "GL_IBM_multimode_draw_arrays" "GL_EXT_compiled_vertex_array" "GL_ARB_texture_query_levels" "GL_EXT_polygon_offset_clamp" "GL_EXT_draw_instanced" "GL_ARB_clip_control" "GL_EXT_texture_env_add" "GL_ARB_point_parameters" "GL_ANGLE_texture_compression_dxt3" "GL_ARB_texture_non_power_of_two" "GL_ARB_texture_rg" "GL_ARB_spirv_extensions" "GL_ARB_texture_env_dot3" "GL_ARB_draw_indirect" "GL_EXT_texture_env_combine" "GL_ARB_blend_func_extended" "GL_INTEL_shader_integer_functions2" "GL_KHR_robust_buffer_access_behavior" "GL_EXT_subtexture" "GL_ARB_multi_bind" "GL_ARB_shader_storage_buffer_object" "GL_AMD_texture_texture4" "GL_ARB_shader_atomic_counters" "GL_ARB_texture_stencil8" "GL_AMD_pinned_memory" "GL_ARB_framebuffer_no_attachments" "GL_ATI_texture_float" "GL_EXT_EGL_image_storage" "GL_ARB_shading_language_100" "GL_IBM_texture_mirrored_repeat" "GL_EXT_texture_edge_clamp" "GL_ARB_shader_texture_lod" "GL_ARB_pixel_buffer_object" "GL_ARB_vertex_array_bgra" "GL_ARB_get_program_binary" "GL_AMD_seamless_cubemap_per_texture" "GL_EXT_direct_state_access" "GL_ARB_texture_mirrored_repeat" "GL_ARB_post_depth_coverage" "GL_EXT_texture_lod_bias" "GL_ARB_viewport_array" "GL_ARB_copy_image" "GL_ARB_texture_filter_anisotropic" "GL_ARB_transform_feedback_instanced" "GL_EXT_texture_sRGB" "GL_ARB_ES2_compatibility" "GL_ARB_draw_buffers" "GL_EXT_vertex_array_bgra" "GL_ARB_sync" "GL_ARB_timer_query" "GL_ARB_shading_language_include" "GL_EXT_fog_coord" "GL_ARB_texture_storage" "GL_ARB_point_sprite" "GL_EXT_blend_equation_separate" "GL_ARB_draw_buffers_blend" "GL_ARB_seamless_cubemap_per_texture" "GL_AMD_shader_stencil_export" "GL_ARB_fragment_shader" "GL_OES_EGL_image" "GL_ARB_ES3_compatibility" "GL_NV_fragment_shader_interlock" "GL_KHR_context_flush_control" "GL_NV_fog_distance" "GL_ARB_direct_state_access" "GL_ARB_shader_ballot" "GL_ARB_gpu_shader5" "GL_ARB_shading_language_420pack" "GL_ARB_sample_shading" "GL_EXT_secondary_color" "GL_AMD_vertex_shader_layer" "GL_ARB_polygon_offset_clamp" "GL_EXT_vertex_array" "GL_EXT_draw_range_elements" "GL_KHR_blend_equation_advanced" "GL_NV_depth_clamp" "GL_EXT_packed_depth_stencil" "GL_OES_read_format" "GL_EXT_framebuffer_blit" "GL_EXT_texture_rectangle" "GL_ARB_shader_image_load_store" "GL_ARB_internalformat_query2" "GL_ARB_texture_rectangle" "GL_ARB_compute_shader" "GL_ARB_transform_feedback_overflow_query" "GL_ARB_uniform_buffer_object" "GL_EXT_texture_compression_dxt1" "GL_ARB_shader_objects" "GL_ARB_robustness" "GL_EXT_memory_object" "GL_EXT_shader_samples_identical" "GL_NV_copy_depth_to_color" "GL_ARB_texture_compression_bptc" "GL_EXT_texture_sRGB_R8" "GL_ARB_multitexture" "GL_SGIS_texture_lod" "GL_MESA_window_pos" "GL_ARB_texture_env_combine" "GL_ARB_internalformat_query" "GL_ARB_shader_atomic_counter_ops" "GL_AMD_shader_trinary_minmax" "GL_AMD_performance_monitor" "GL_ARB_texture_compression_rgtc" "GL_ARB_framebuffer_sRGB" "GL_EXT_framebuffer_multisample_blit_scaled" "GL_ARB_draw_elements_base_vertex" "GL_ARB_vertex_buffer_object" "GL_KHR_parallel_shader_compile" "GL_AMD_vertex_shader_viewport_index" "GL_ARB_shader_texture_image_samples" "GL_NV_texture_barrier" "GL_ARB_texture_env_crossbar" "GL_ARB_transform_feedback2" "GL_EXT_framebuffer_sRGB" "GL_ARB_texture_compression" "GL_ARB_shader_image_size" "GL_EXT_packed_pixels" "GL_ATI_separate_stencil" "GL_SGIS_texture_border_clamp" "GL_EXT_texture_compression_rgtc" "GL_ARB_fragment_coord_conventions" "GL_ARB_indirect_parameters" "GL_EXT_semaphore_fd" "GL_INTEL_blackhole_render" "GL_ARB_fragment_shader_interlock" "GL_ARB_shader_bit_encoding" "GL_EXT_semaphore" "GL_NV_texture_rectangle" "GL_EXT_abgr" "GL_ARB_map_buffer_alignment" "GL_NV_conditional_render" "GL_EXT_framebuffer_multisample" "GL_ARB_texture_gather" "GL_EXT_texture_compression_s3tc" "GL_EXT_point_parameters" "GL_EXT_shadow_funcs" "GL_KHR_robustness" "GL_ARB_buffer_storage" "GL_ARB_depth_buffer_float" "GL_ARB_pipeline_statistics_query" "GL_IBM_rasterpos_clip" "GL_ARB_invalidate_subdata" "GL_ARB_enhanced_layouts" "GL_ARB_clear_texture" "GL_ARB_window_pos" "GL_ARB_explicit_attrib_location" "GL_EXT_pixel_buffer_object" "GL_ARB_texture_buffer_range" "GL_ANGLE_texture_compression_dxt5" "GL_AMD_query_buffer_object" "GL_ARB_vertex_attrib_64bit" "GL_ARB_derivative_control" "GL_S3_s3tc" "GL_NV_blend_square" "GL_ARB_shader_viewport_layer_array" "GL_ARB_ES3_1_compatibility" "GL_EXT_blend_minmax" "GL_ATI_draw_buffers" "GL_ARB_parallel_shader_compile" "GL_NV_packed_depth_stencil" "GL_ARB_compatibility" "GL_EXT_stencil_two_side" "GL_EXT_gpu_program_parameters" "GL_ARB_occlusion_query" "GL_EXT_shader_framebuffer_fetch" "GL_ARB_vertex_type_10f_11f_11f_rev" "GL_EXT_texture_cube_map" "GL_ARB_texture_storage_multisample" "GL_ATI_texture_env_combine3" "GL_ARB_gpu_shader_int64" "GL_ARB_separate_shader_objects" "GL_ARB_fragment_program" "GL_NV_copy_image" "GL_NV_texgen_reflection" "GL_ARB_texture_query_lod" "GL_EXT_blend_color" "GL_ARB_provoking_vertex" "GL_ARB_texture_mirror_clamp_to_edge" "GL_NV_compute_shader_derivatives" "GL_EXT_memory_object_fd" "GL_KHR_debug" "GL_EXT_texture_filter_anisotropic" "GL_EXT_rescale_normal" "GL_EXT_blend_subtract" "GL_ARB_tessellation_shader" "GL_EXT_separate_specular_color" "GL_SGIS_texture_edge_clamp" "GL_EXT_texture_env_dot3" "GL_ARB_base_instance" "GL_EXT_texture_snorm" "GL_ARB_compressed_texture_pixel_storage" "GL_INGR_blend_func_separate" "GL_ARB_fragment_program_shadow" "GL_EXT_transform_feedback" "GL_EXT_multi_draw_arrays" "GL_EXT_framebuffer_object" "GL_ARB_texture_buffer_object" "GL_ARB_shader_subroutine" "GL_EXT_timer_query" "GL_EXT_copy_texture" "GL_EXT_shader_framebuffer_fetch_non_coherent" "GL_EXT_bgra" "GL_ARB_shader_draw_parameters" "GL_ARB_multisample" "GL_ARB_arrays_of_arrays" "GL_ARB_gpu_shader_fp64" "GL_KHR_no_error" "GL_EXT_packed_float" "GL_NV_light_max_exponent" "GL_ARB_vertex_program" "GL_ARB_texture_buffer_object_rgb32" "GL_EXT_vertex_attrib_64bit" "GL_ARB_texture_barrier" "GL_ARB_half_float_pixel" "GL_ARB_debug_output" "GL_ARB_shader_stencil_export" "GL_ARB_query_buffer_object" "GL_ARB_instanced_arrays" "GL_ARB_transpose_matrix" "GL_ARB_clear_buffer_object" "GL_ARB_robust_buffer_access_behavior" "GL_ARB_texture_view" "GL_ARB_texture_swizzle" "GL_EXT_texture_shadow_lod" "GL_EXT_texture_shared_exponent" "GL_EXT_gpu_shader4" "GL_ARB_seamless_cube_map" "GL_ARB_color_buffer_float" "GL_ARB_transform_feedback3" "GL_ARB_sampler_objects" "GL_EXT_texture_integer" "GL_NV_half_float" "GL_ARB_compute_variable_group_size" "GL_EXT_provoking_vertex" "GL_EXT_texture_swizzle" "GL_EXT_texture_array" "GL_EXT_texture_sRGB_decode" "GL_ARB_map_buffer_range" "GL_ARB_vertex_type_2_10_10_10_rev" "GL_ARB_copy_buffer" "GL_AMD_draw_buffers_blend" "GL_AMD_conservative_depth" "GL_ARB_shadow" "GL_SUN_multi_draw_arrays" "GL_3DFX_texture_compression_FXT1" "GL_ARB_texture_float" "GL_ARB_cull_distance" QPA OpenGL Detection Info supportsDesktopGL: true supportsOpenGLES: true isQtPreferOpenGLES: false useBufferInvalidation (config option): false Hardware Information GPU Acceleration: auto Memory: 7650 Mb Number of Cores: 8 Swap Location: /tmp Built for: sse2 Base instruction set: sse2 Supported instruction sets: fma3+avx2 avx2 fma3+avx avx fma4 fma3+sse4.2 sse4.2 sse4.1 ssse3 sse3 sse2 Current Settings Current Swap Location: /tmp Current Swap Location writable: true Undo Enabled: true Undo Stack Limit: 200 Use OpenGL: true Use OpenGL Texture Buffer: true Disable Vector Optimizations: false Disable AVX Optimizations: false Canvas State: OPENGL_SUCCESS Autosave Interval: 420 Use Backup Files: true Number of Backups Kept: 1 Backup File Suffix: ~ Backup Location: Same Folder as the File Backup Location writable: false Use Win8 Pointer Input: false Use RightMiddleTabletButton Workaround: false Levels of Detail Enabled: false Use Zip64: true Display Information Number of screens: 1 Screen: 0 Name: eDP-1 Depth: 24 Scale: 1 Physical DPI166.349 Logical DPI96 Physical Size: 293, 165 Position: 0, 0 Resolution in pixels: 1920x1080 Manufacturer: Chimei Innolux Corporation Model: Refresh Rate: 60 - There were other session logs before this one but I removed them, sorry if this makes it harder SESSION: 15 Jul 2022 12:50:02 +1000. Executing /tmp/.mount_krita-AwT3aG/usr/bin/krita Krita Version: 5.1.0-beta2 (git 973c92a), Qt version compiled: 5.12.12, loaded: 5.12.12. Process ID: 59465 -- -- -- -- -- -- -- -- 15 Jul 2022 12:50:02 +1000: Style: windows. Available styles: Windows, Fusion 15 Jul 2022 12:50:02 +1000: Database is up to date. Version: 0.0.17, created by Krita 5.1.0-beta1, at Wed Jun 29 23:31:44 2022 15 Jul 2022 12:50:25 +1000: Importing image/jxl to application/x-krita. Location: /home/andrew/Downloads/Fabric031_4K_Displacement_ly.jxl. Real location: /home/andrew/Downloads/Fabric031_4K_Displacement_ly.jxl. Batchmode: 0 KRITA DID NOT CLOSE CORRECTLY ================================================================================ SESSION: 15 Jul 2022 12:50:29 +1000. Executing /tmp/.mount_krita-hJ9Ow4/usr/bin/krita Krita Version: 5.1.0-beta2 (git 973c92a), Qt version compiled: 5.12.12, loaded: 5.12.12. Process ID: 59563 -- -- -- -- -- -- -- -- 15 Jul 2022 12:50:29 +1000: Style: windows. Available styles: Windows, Fusion 15 Jul 2022 12:50:30 +1000: Database is up to date. Version: 0.0.17, created by Krita 5.1.0-beta1, at Wed Jun 29 23:31:44 2022 --------------------- ADDITIONAL INFORMATION This also happens on Android with beta 1 of 5.1.0, although I have not tested it on Windows.
A possibly relevant merge request was started @ https://invent.kde.org/graphics/krita/-/merge_requests/1523
Git commit 7aa65da676776951c26c3e42dd3d09da6781ed40 by Halla Rempt, on behalf of L. E. Segovia. Committed on 20/07/2022 at 07:40. Pushed by rempt into branch 'master'. JPEG XL: set the correct box buffer and size M +10 -6 plugins/impex/jxl/JPEGXLImport.cpp https://invent.kde.org/graphics/krita/commit/7aa65da676776951c26c3e42dd3d09da6781ed40
Git commit 3179ee41029f32138ef11c0720b848482a671782 by Halla Rempt, on behalf of L. E. Segovia. Committed on 20/07/2022 at 07:40. Pushed by rempt into branch 'master'. JPEG XL: fix stack overrun on box type checking M +14 -5 plugins/impex/jxl/JPEGXLImport.cpp https://invent.kde.org/graphics/krita/commit/3179ee41029f32138ef11c0720b848482a671782
Git commit 4a0b50d1663ce2453c6796bc8d6191a949506606 by Halla Rempt, on behalf of L. E. Segovia. Committed on 20/07/2022 at 07:40. Pushed by rempt into branch 'master'. JPEG XL: fix metadata application when the BASIC_INFO event hasn't fired yet Substance Designer exports images with metadata coming before the actual pixel stream. This makes it impossible to apply the metadata cleanly since we need an active image to create the paint layer. This commit fixes the issue by safekeeping the boxes and then applying them after the decode is finished. M +37 -21 plugins/impex/jxl/JPEGXLImport.cpp https://invent.kde.org/graphics/krita/commit/4a0b50d1663ce2453c6796bc8d6191a949506606
Git commit 4814025fbf701199596908928ffb37b8494794dd by L. E. Segovia. Committed on 20/07/2022 at 15:48. Pushed by lsegovia into branch 'krita/5.1'. JPEG XL: fix stack overrun on box type checking (cherry picked from commit 3179ee41029f32138ef11c0720b848482a671782) M +14 -5 plugins/impex/jxl/JPEGXLImport.cpp https://invent.kde.org/graphics/krita/commit/4814025fbf701199596908928ffb37b8494794dd
Git commit 1d18ef1f3bdd615f0353124ce660da4954ce744c by L. E. Segovia. Committed on 20/07/2022 at 15:48. Pushed by lsegovia into branch 'krita/5.1'. JPEG XL: set the correct box buffer and size (cherry picked from commit 7aa65da676776951c26c3e42dd3d09da6781ed40) M +10 -6 plugins/impex/jxl/JPEGXLImport.cpp https://invent.kde.org/graphics/krita/commit/1d18ef1f3bdd615f0353124ce660da4954ce744c
Git commit 8ee7309156660975d6608fc86e8e8fe14dc20815 by L. E. Segovia. Committed on 20/07/2022 at 15:48. Pushed by lsegovia into branch 'krita/5.1'. JPEG XL: fix metadata application when the BASIC_INFO event hasn't fired yet Substance Designer exports images with metadata coming before the actual pixel stream. This makes it impossible to apply the metadata cleanly since we need an active image to create the paint layer. This commit fixes the issue by safekeeping the boxes and then applying them after the decode is finished. (cherry picked from commit 4a0b50d1663ce2453c6796bc8d6191a949506606) M +37 -21 plugins/impex/jxl/JPEGXLImport.cpp https://invent.kde.org/graphics/krita/commit/8ee7309156660975d6608fc86e8e8fe14dc20815