A new cairo release 1.18.6 is now available from:
https://cairographics.org/releases/cairo-1.18.6.tar.xz
which can be verified with:
https://cairographics.org/releases/cairo-1.18.6.tar.xz.sha256sum
1c767308174337a74694da0f3ec069c271452163a1ef4540964c50c301f157d4 *cairo-1.18.6.tar.xz
https://cairographics.org/releases/cairo-1.18.6.tar.xz.sha256sum.asc
(signed by Emmanuele Bassi)
Additionally, a git clone of the source tree:
git clone https://gitlab.freedesktop.org/cairo/cairo.git
will include a signed 1.18.4 tag which points to a commit named:
018b3424a10ecd37450360f21454ecf0f3007e17
which can be verified with:
git verify-tag 1.18.6
and can be checked out with a command such as:
git switch -C build 1.18.6
Release 1.18.6 (2026-09-20 Emmanuele Bassi )
==============================================================
A new stable release.
The XCB surface triggered an UAF warning when building with GCC. [#898]
The clipping code was accessing various fields in a guard value, and
causing a crash inside Inkscape. See: https://gitlab.com/inkscape/inkscape/-/issues/5631
Multiple fixes for the Windows backends, including improvements in the
thread safety of the DirectWrite code. [#897]
The DirectWrite backend now supports COLRv1 fonts. [#903]
Multiple fixes for building with MSVC and ClangCL.
A leak in the PDF surfaces has been fixed. [!644]
Various gaps between abutting rectangles when drawing with ANTIALIAS_NONE
were removed by using absolute coordinates and avoiding rounding
errors. [#976]
Remove an overflow when computing the buffer size in the XRender code. [#950]
Full changes since 1.18.2
=========================
Albert Astals Cid (1):
_cairo_pdf_surface_finish: Fix leak in error conditions
Alvin Wong (1):
Add missing mutex cleanup in _cairo_recording_surface_finish
Behdad Esfahbod (2):
[rectanble Handle overflow in _cairo_box_from_doubles
Merge branch 'rectangle-box-negative-extents' into 'master'
Benjamin Gilbert (1):
win32: Fix MSVC build with dwrite disabled
Emilio Cobos Álvarez (4):
[cff-subset] Validate dictionary end.
[cff-subset] Add some missing bounds checks to cairo_cff_font_read_fdselect.
[cff-subset] Check cff dict operator / operand sizes.
[cff-subset] Protect against overflow of offset + size calculation.
Emmanuele Bassi (13):
Post-release version bump to 1.18.5
Merge branch 'release-1-18-4' into 'master'
The GDI coordinate system is inverted compared to cairo's here, so the delta-y value needs to be negated, otherwise glyph runs with non-zero y-advances will shift in the wrong direction.
Merge branch 'fix-msc-ver-compare' into 'master'
Merge branch 'win2k' into 'master'
Merge branch 'dwrite' into 'master'
Merge branch 'test-fixes' into 'master'
Merge branch 'recording-surface-finish-internal-helper' into 'master'
Merge branch 'bug-927' into 'master'
Merge branch 'win32-thread-data' into 'master'
Merge branch 'meson-darwin-dylib-versions' into 'master'
Merge branch 'master' into 'master'
Release Cairo 1.18.6 (stable)
Jeremy Huddleston Sequoia (1):
meson: Setup darwin dylib versions
Jim Blandy (1):
_compute_xrender_bitmap_size: Avoid overflow computing buffer size.
Jonathan Kew (9):
Fix sign of delta-y for ExtTextOutW
[cff-subset] check subrs offset is within font data
Ensure converter's jmp_buf is set up before adding edges.
Merge branch cairo:master into master
[cff-subset] check subrs offset is within font data
Range-check FDSelect value during CFF subsetting.
Check surface for error in dwrite color-font code
[cff-subset] Add some missing range checks.
Check for end of charstring when decoding an integer
Jordan Petridis (5):
ci: Move the android cross file into the repository
build: Update wrap files
ci: Update the android CI image
ci: Install android toolchain into our own image
ci: Update rust version
Kevin Ushey (3):
fix gap between abutting rectangles under ANTIALIAS_NONE
add test for bug 976
regenerate reference images affected by rectangle coordinate change
Luca Bacci (63):
Win32: Use cairo_atomic_once_t to initialize TLS slot
DWrite: Fix switch for grid-fit mode
Meson: Add comment about atomic ops on Windows
Win32: Implement init_once with InitOnceBeginInitialize / InitOnceComplete
Drop support for very old GCC versions
Meson: Add arguments for both C and C++ compilation
Meson: Suppress warning C5286 on MSVC
Meson: Define _CRT_SECURE_NO_WARNINGS when compiling with MSVC
Win32: Fix init once condition
Fix check for InitOnceComplete failure
Readme: Remove leftover mention of Windows 2000
Check if _MSC_VER macro is defined
Fix typo
DWrite: don't set component-alpha for A8 mask
Add definitions for ID2D1DeviceContext7 in d2d1-extra.h
Meson: Do not check for d2d1.h, dwrite.h, wincodec.h
Meson: Simplify check for D2D, DWrite, WIC a bit
Check which ID2D1DeviceContext subclasses are defined in d2d1_3.h
Rename dwrite / d2d1 polyfill headers to .hpp extension
dwrite-extra.hpp: Rework a bit
dwrite-extra.hpp: Fix check for mingw-w64 workaround
Always include dwrite-extra.hpp
Add definition for IDWriteFactory8
DWrite: Add support for COLRv1 fonts
make-constructors.py: Sort tests list
Remove leftover scripts from the autotools build
CI: Avoid running duplicated tests
Update Quartz reference images
CI: Add coverage-column-triangles to Quartz ignores
Meson: Use mklink to create the /test/srcdir link on Windows
Boilerplate: Open pipe in binary mode on Windows
Boilerplate: Use backward slashes for system / popen commands on Windows
Boilerplate/Win32: Switch to a DIB section
Tests/pdf-operator-text: Check if pdf target is enabled
Tests/font-variations: Cleanup resources in all cases
Tests/create-regions: skip if needed features are missing
CI: Run tests on Windows
CI: Do not store .git directory in artifacts
CI/MSVC: Build less
CI/MSVC: Exclude /test/srcdir symlink from the artifacts
recording surface: Implement finish via reset
_cairo_scaled_font_keys_equal: Also check implementation font-face
Meson: Fix compilation with CLangCL
cairo-script: Fix build on 64bit Windows with LZO enabled
Fix build with CAIRO_NO_MUTEX
Drop unneeded assert
MSVC: Add necessary includes
MSVC: Turn warning C4013 into an error
MSVC: Define _CRT_NONSTDC_NO_WARNINGS
MSVC: Define _USE_MATH_DEFINES via meson.build
Meson: Fix warnings on clang-cl
Atomics: Add _cairo_atomic_init_once_check
Win32: Add thread data structure
GDI: Use thread data for font HDC
GDI: Rename _get_global_font_dc to _get_thread_font_dc
DWriteFactory: Remove unused method and member object
D2DFactory: Remove unused method and member object
DWriteFactory: Make thread-safe
DWriteFactory: Release resources on library unload
D2DFactory: Make thread-safe
WICFactory: Make thread-safe
DWriteFactory: return raw pointers
D2DFactory: return raw pointers
Matthias Clasen (1):
Fix a crash in the clipping code
Ryan VanderMeulen (1):
Add check for clang to cairo attribute handling code
Tim-Philipp Müller (13):
ci: update windows image
ci: mark fedora image job as "placeholder job"
Merge branch 'ci-windows-image-to-gstreamer-1.26' into 'master'
ci: drop placeholder-job tags from image jobs
Merge branch 'alatiera/android-image-test' into 'master'
Merge branch 'win32-fixes' into 'master'
Merge branch 'fixes' into 'master'
ci: remove macos job that used ancient intel mac mini runners
Merge branch 'ci-update-for-removal-of-old-intel-mac-runners' into 'master'
Merge branch 'compiler-features' into 'master'
Merge branch 'fix-init-once-complete-check' into 'master'
ci: add macOS arm64
Merge branch 'ci-macos-arm64' into 'master'
Uli Schlachter (23):
Fix cairo-fdr and cairo-trace
Merge branch 'fix-symbol-interposition' into 'master'
Merge branch 'cm/fix-uaf-warning' into 'master'
Merge branch 'winsdk_26100_fix' into 'master'
Merge branch 'fix-clipping-crash' into 'master'
Merge branch 'tests-misc-fixes' into 'master'
Merge branch 'patch-1' into 'master'
Merge branch 'work/fix-leak-in-_cairo_pdf_surface_finish' into 'master'
Add a test for bug 927
Merge branch 'add-polygon-oom' into 'master'
Merge branch 'master' into 'master'
Merge branch 'reinstate-font-map-for-placeholders' into 'master'
Merge branch 'fdselect-range' into 'master'
Merge branch 'enhancements' into 'master'
Merge branch 'patch-2' into 'master'
Merge branch 'cff-subset' into 'master'
Merge branch 'msvc-enhancements' into 'master'
Fix _cairo_matrix_has_unity_scale()
Add more reference images for bug927
Merge branch 'cff-fixes' into 'master'
Merge branch 'type1-decode-integer' into 'master'
Merge branch 'bugfix/bug-976' into 'master'
Merge branch 'ft-glyph-buffer-overflow' into 'master'
correctmost (1):
xcb: Fix a -Wuse-after-free=3 warning with GCC
vladgrind (1):
Fix clipping paths for printed patterns