Commit graph

10647 commits

Author SHA1 Message Date
Alx Sa
55256210f8 plug-ins: Fix algorithm check for PAA import
Resolves #16151
The original implementation mixed up the variable that
needed to be used for boundary checks - it should be
"estimated_size" and not "flags". This patch fixes the issue
to prevent a buffer overflow.
2026-04-02 14:02:28 +00:00
Alx Sa
bfec7079f0 plug-ins: Prevent attack via APNG transparent chunk
Resolves #16150
Per Bronson Yen, it's possible to create a transparent chunk
that's larger than 256 index values. In that case, the trans[]
array will overflow since we initialize it to 256 indexes.
This patch adds a check to make sure the iterator used for the
transparency for loop does not exceed the array size even if
the chunk size does.
2026-04-02 05:34:45 +00:00
Bruno Lopes
1dd77b6fdf plug-ins: No need to clang-specific pragma
This partially reverts 94f77bd2
2026-04-01 09:47:56 -03:00
Bruno Lopes
eaa472158c plug-ins: Silence deprecation warning about rsvg_handle_set_size_callback 2026-04-01 08:04:56 -03:00
Bruno Lopes
d025b02823 plug-ins: Use localtime_s on Windows to fix CRT_INSECURE_DEPRECATE warns 2026-04-01 07:38:12 -03:00
Bruno Lopes
f4969c2f80 plug-ins: Use fopen_s on Windows to fix CRT_INSECURE_DEPRECATE warns 2026-04-01 07:16:32 -03:00
Bruno Lopes
f14f9516e2 plug-ins: Fix some problematic Windows functions
The macro should be enough but
on these source files it does not work.
2026-03-31 21:44:51 -03:00
Bruno Lopes
dae02feed3 plug-ins: Use Glib date-time functions 2026-03-31 21:44:51 -03:00
Bruno Lopes
4643f7898f plug-ins: More casting fixes 2026-03-31 21:44:51 -03:00
Bruno Lopes
3807b2f311 app, plug-ins: More sscanf_s on Windows 2026-03-31 21:44:51 -03:00
Bruno Lopes
e97e3d0e35 plug-ins: Forgot a macro 2026-03-31 18:58:47 -03:00
Bruno Lopes
d254c5684c app, libgimp*, plug-ins: Use strtok_s on Windows to fix CRT_INSECURE_DEPRECATE 2026-03-31 16:27:25 -03:00
Bruno Lopes
ed3611efa6 app, libgimp*, plug-ins: Use strncpy_s on Windows to fix CRT_INSECURE_DEPRECATE 2026-03-31 13:31:33 -03:00
Bruno Lopes
84c7274c70 plug-ins: Use fscanf_s on Windows to fix CRT_INSECURE_DEPRECATE warnings 2026-03-31 13:31:33 -03:00
Bruno Lopes
a146c4ae56 plug-ins: Do not redefine math macros on MSVC 2026-03-30 22:32:01 -03:00
Bruno Lopes
77682518b9 app, plug-ins: Use strcpy_s on Windows to fix CRT_INSECURE_DEPRECATE warnings 2026-03-30 22:32:01 -03:00
Bruno Lopes
2066844166 app, lib*, plug-ins: Use sscanf_s on Windows to fix CRT_INSECURE_DEPRECATE warns 2026-03-30 22:31:57 -03:00
Bruno Lopes
c19ed5ca98 plug-ins: Cast g_string_append_c argument to gchar on file-tiff
Silences an Apple Clang warning
2026-03-30 16:09:13 -03:00
Bruno Lopes
94f77bd256 plug-ins: Silence 'register' storage class specifier warning on Clang too 2026-03-29 21:07:00 -03:00
Bruno Lopes
8c0ce0cd64 plug-ins: Fix many type conversions on file-psd
As per Apple Clang warnings.
2026-03-29 18:31:52 -03:00
Bruno Lopes
af1dac3c51 app, plug-ins: Comment unused stuff on macOS
This fixes Apple Clang warnings about:

- idx
- count_large
- count_nan
- n
- iteration
- original_id
- real_pos
2026-03-29 17:19:42 -03:00
Bruno Lopes
f4f1baf5ef app, libgimp, libgimpbase, libgimpwidgets, plug-ins: Add macro to unused code
This fixes Apple Clang warnings about:

- xdiff
- ydiff
- gimp_ui_get_foreign_window
- locale_parser_parse
- use_app_menu
- gimp_unique_dbus*
- transient_set
- gimp_get_foreign_window
- support
2026-03-29 17:19:42 -03:00
Bruno Lopes
0834c7c954 app, plug-ins: Use GINT_TO_POINTER / GPOINTER_TO_INT for portability
Doing traditional explicit conversion (casting) causes warnings.
See: https://docs.gtk.org/glib/conversion-macros.html
2026-03-28 19:51:25 -03:00
Bruno Lopes
41c9d8ce9c plug-ins: Initialize raw_len32 2026-03-28 19:51:25 -03:00
Bruno Lopes
c8c420aa18 app, plug-ins: Comment pixel, total, flags and count unused variables 2026-03-28 19:51:25 -03:00
Alx Sa
2f7b49dfea plug-ins: Change TIM texture indexed conversion
There are reports that clang-based compilers create
a TIM plug-in that crashes when exporting. This seems
related to the method used to convert RGB images to
indexed when choosing TIM textures with palettes on export.

This patch switches to using gimp-image-convert-indexed
instead, to prevent the format mismatch crash on initial export.
2026-03-28 05:56:29 +00:00
Bruno Lopes
1437c84d07 plug-ins: Fix meson warning about missing check: kwarg 2026-03-27 09:53:03 -03:00
Frank Teklote
061a7eada2 file-psd: fix ordering of loaded Photoshop paths
Previously, paths from Photoshop TIFF files were appended via
gimp_image_insert_path(..., -1), which caused the displayed order to be
reversed. This change preserves the original ordering while keeping the
'Working Path' as the last element.
2026-03-27 11:57:50 +00:00
Alx Sa
f52ae69532 plug-ins: Small code style updates to prior commit 2026-03-25 03:29:55 +00:00
Frank Teklote
0de2a56176 file-psd: scan 'ImageSourceData' for 'Layr' block before parsing layers
When loading layer metadata from TIFF 'ImageSourceData' Tag, don't assume
'Layr' is the first 8BIM block. Iterate over 8BIM/MIB8 blocks, skip non
'Layr' blocks, and rewind 4 bytes before calling read_layer_block() so it
can read the length field as expected. Limit mask_layer_len to the
selected block (including padding).
2026-03-24 23:52:50 +00:00
Alx Sa
3f17f528d1 plug-ins: Load more multichannel PSD channels
Multichannel PSD images reuse their first channel as the
main grayscale "layer". Our PSD plug-in did not take this
into account, resulting in the channels being off-by-one and
mislabeled.

This patch prevents chn_a[0].data from being freed after
it is used to load the layer, and then resets the counts so that
it is reused as the first imported channel.
2026-03-24 20:58:29 +00:00
Alx Sa
680ebede22 plug-ins: Read full channel data for PSP selection
968cf06a only loaded the rectangle area that the
selection was contained in, rather than the actual
channel data. This patch extended the code to
also read in the PSP_CHANNEL_BLOCK data, add
it to the selection GeglBuffer, and then shift it over
into the correct location.
2026-03-23 15:07:33 +00:00
Alx Sa
51f1de8844 plug-ins: Add bounds checks to JIF loading
Resolves #16076
As reported by chamal, it is possible to craft a
Jeff's Image Format image with header values that
are larger than the file size. This can lead to buffer
overflows when loading the data. This patch adds
bounding checks based on the size of the stream.
2026-03-21 17:33:39 +00:00
Alx Sa
ccb3cc3ae8 plug-ins: Add bounds check for SFW plug-in
Resolves #16075
As noted by chamal, it is possible to cause a buffer overflow
in a crafted SFW file. This patch adds bounds checks to prevent
this from occurring.
2026-03-21 15:57:01 +00:00
Alx Sa
7612363d8c plug-ins: Clean up PVR import
Resolves #16058

Per mzfr's observations, this patch adds more
safeguards to PVR import. Memory for data and pixels
is allocated and checked rather than using arrays.
Twiddled patterns are increased to 2048 and we
verify the dimensions are in that range before trying
to access. If users share an image that is larger than
that, we can increase this limit further.
2026-03-20 23:33:19 +00:00
Alx Sa
3264a67112 plug-ins: Clean up ICNS file loading
Resolves #16056
Per mzfr, we should check if the cursor exceeds the
icon total size in icns_slurp () (per OSX icons) as we
do already in icns_decompress ().

Additionally, we were not deleting the temp_image created
to load each icon, and in fact we were making an unnecessary
blank temp_image before receiving the one from the PNG &
JPEG2000 procedures. This patch fixes both problems.
2026-03-20 14:10:15 +00:00
Alx Sa
bb3bf0ae5b plug-ins: Allocate memory in PAA plug-in
Per mzfr, we should dynamically allocate memory
for the PAA plug-in pixel data rather than rely on the image
being small enough for an array to store its information.
2026-03-20 12:24:47 +00:00
Alx Sa
b6d43ec0fe plug-ins: Allocate more space for 4bpp TIM textures
Resolves #16052
Per mzfr, the pixel array for 4bpp TIM textures needs to
be allocated twice as large since each byte in the file
stores two pixel indexes when opened.
2026-03-19 12:39:06 +00:00
Alx Sa
e0bd82f290 plug-ins: Protect against too-large FITS images
Resolves #16051
As reported by mzfr, it is possible to crash the FITS plug-in
if a large enough image is read in. This patch implements their
suggestions of using g_try_malloc () over malloc () (and checking
if it returns NULL), as well as verifying the width & height are
within GIMP's image range.
2026-03-19 12:05:47 +00:00
Alx Sa
337cfb6a31 plug-ins: Remove unneeded gegl_buffer_iterator_add()
Resolves #5553
As noted by Massimo, in the Sparkle plug-in there is an
extra gegl_buffer_iterator_add () that is not used in the following
gegl_buffer_iterator_next (iter) loop. Since this adds dest_buffer
which is also written to in the loop in the fspike () functions,
it can cause data to be overwritten. This patch removes the
unneeded extra function call.
2026-03-19 04:07:58 +00:00
Bruno Lopes
a00a227f54 plug-ins: Comment some unused functions on file-dds
To fix GNU Clang warnings
2026-03-18 18:04:11 -03:00
Bruno Lopes
23a17ee000 plug-ins: Comment unused function on sphere-designer
This fixes a warning from GNU CLang
2026-03-18 18:04:11 -03:00
Bruno Lopes
487ee4f5da plug-ins: Clean unused srcrow and src_bytes variables on warp
It was causing warnings on GNU CLang
2026-03-18 18:04:11 -03:00
Jehan
85ad553b09 plug-ins: localize a string. 2026-03-18 17:18:08 +01:00
Bruno Lopes
71c3f29df8 plug-ins: Fix warnings about unused profile_label and cmyk_profile in file-jp2 2026-03-17 22:30:47 -03:00
Sabri Ünal
3a60f800d4 i18n: Mark "Mask image" as translatable
Mark the "Mask image" string as translatable.
2026-03-17 19:10:33 -03:00
Bruno Lopes
9fb127f684 meson: Add explicit build option to build 32-bit TWAIN
It is long-time unmaintained on our repo, with no issues being fixed. Now that
32-bit binaries are not distributed, we can safely move to unmaintained section.
2026-03-17 09:56:20 -03:00
Alx Sa
60d3caa2e2 plug-ins: Copy profile with Tile plug-in
If the user chooses to make a new image when
running the Tile plug-in, the color profile is not
carried over. This can result in the tiled image
looking different. This patch adds calls to
gimp_image_get_color_profile () and
gimp_image_set_color_profile () to ensure the
profile is carried over.
2026-03-15 23:13:14 +00:00
Anders Jonsson
f33200fe8d plug-ins: show default text for licensor_phone_type2 in metadata-editor 2026-03-12 20:04:54 +01:00
Frank Teklote
4576f5a2f1 file-jpeg: fix loading of photoshop path split across multiple segments
Some JPEGs contain large Photoshop path metadata split across multiple APP13 markers. Collect all APP13 payloads and skip the repeated "Photoshop 3.0\0" identifier for subsequent segments so the metadata can be parsed as a single stream.
2026-03-12 15:08:39 +01:00