mirror of
https://github.com/python-pillow/Pillow.git
synced 2024-12-24 17:06:16 +03:00
Merge pull request #7928 from python-pillow/lcms
This commit is contained in:
commit
2776126aa9
BIN
Tests/icc/sGrey-v2-nano.icc
Normal file
BIN
Tests/icc/sGrey-v2-nano.icc
Normal file
Binary file not shown.
|
@ -661,6 +661,11 @@ def test_auxiliary_channels_isolated() -> None:
|
||||||
assert_image_equal(test_image.convert(dst_format[2]), reference_image)
|
assert_image_equal(test_image.convert(dst_format[2]), reference_image)
|
||||||
|
|
||||||
|
|
||||||
|
def test_long_modes() -> None:
|
||||||
|
p = ImageCms.getOpenProfile("Tests/icc/sGrey-v2-nano.icc")
|
||||||
|
ImageCms.buildTransform(p, p, "ABCDEFGHI", "ABCDEFGHI")
|
||||||
|
|
||||||
|
|
||||||
@pytest.mark.parametrize("mode", ("RGB", "RGBA", "RGBX"))
|
@pytest.mark.parametrize("mode", ("RGB", "RGBA", "RGBX"))
|
||||||
def test_rgb_lab(mode: str) -> None:
|
def test_rgb_lab(mode: str) -> None:
|
||||||
im = Image.new(mode, (1, 1))
|
im = Image.new(mode, (1, 1))
|
||||||
|
|
|
@ -14,16 +14,11 @@ ImageMath eval()
|
||||||
not recommended to process expressions without considering this.
|
not recommended to process expressions without considering this.
|
||||||
:py:meth:`~PIL.ImageMath.lambda_eval` is a more secure alternative.
|
:py:meth:`~PIL.ImageMath.lambda_eval` is a more secure alternative.
|
||||||
|
|
||||||
:cve:`YYYY-XXXXX`: TODO
|
:cve:`2024-28219`: Fix buffer overflow in ``_imagingcms.c``
|
||||||
^^^^^^^^^^^^^^^^^^^^^^^
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
|
||||||
TODO
|
In ``_imagingcms.c``, two ``strcpy`` calls were able to copy too much data into fixed
|
||||||
|
length strings. This has been fixed by using ``strncpy`` instead.
|
||||||
Backwards Incompatible Changes
|
|
||||||
==============================
|
|
||||||
|
|
||||||
TODO
|
|
||||||
^^^^
|
|
||||||
|
|
||||||
Deprecations
|
Deprecations
|
||||||
============
|
============
|
||||||
|
|
|
@ -201,8 +201,8 @@ cms_transform_new(cmsHTRANSFORM transform, char *mode_in, char *mode_out) {
|
||||||
|
|
||||||
self->transform = transform;
|
self->transform = transform;
|
||||||
|
|
||||||
strcpy(self->mode_in, mode_in);
|
strncpy(self->mode_in, mode_in, 8);
|
||||||
strcpy(self->mode_out, mode_out);
|
strncpy(self->mode_out, mode_out, 8);
|
||||||
|
|
||||||
return (PyObject *)self;
|
return (PyObject *)self;
|
||||||
}
|
}
|
||||||
|
@ -242,10 +242,9 @@ findLCMStype(char *PILmode) {
|
||||||
// LabX equivalent like ALab, but not reversed -- no #define in lcms2
|
// LabX equivalent like ALab, but not reversed -- no #define in lcms2
|
||||||
return (COLORSPACE_SH(PT_LabV2) | CHANNELS_SH(3) | BYTES_SH(1) | EXTRA_SH(1));
|
return (COLORSPACE_SH(PT_LabV2) | CHANNELS_SH(3) | BYTES_SH(1) | EXTRA_SH(1));
|
||||||
}
|
}
|
||||||
|
|
||||||
else {
|
else {
|
||||||
/* take a wild guess... but you probably should fail instead. */
|
/* take a wild guess... */
|
||||||
return TYPE_GRAY_8; /* so there's no buffer overrun... */
|
return TYPE_GRAY_8;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user