Recent Releases of https://github.com/rmagick/rmagick
https://github.com/rmagick/rmagick - RMagick 7.1.1
Bug Fixes
- Fix Strings being recycled while the C pointers into them are in use by @Watson1978 in https://github.com/rmagick/rmagick/pull/1847
Full Changelog: https://github.com/rmagick/rmagick/compare/RMagick_7-1-0...RMagick_7-1-1
- C++
Published by Watson1978 13 days ago
https://github.com/rmagick/rmagick - RMagick 7.1.0
[!IMPORTANT]
Draw#annotateandDraw#get_type_metricsno longer interpret the text they are given. A%[...]or%xescape is now drawn as written instead of being replaced.Build the string in Ruby instead — everything those escapes provided has a direct accessor:
# before img.annotate(gc, 0, 0, 10, 20, '%wx%h') # after img.annotate(gc, 0, 0, 10, 20, "#{img.columns}x#{img.rows}")
%[width]/%w→Image#columns,%[height]/%h→Image#rows,%f/%d→Image#filename,%m→Image#format,%b→Image#filesize,%[EXIF:*]and other properties →Image#[],%[artifact:KEY]→Image#artifact(new in this release),%[mean]→Image#channel_mean,%[pixel:p{x,y}]→Image#pixel_color,%[fx:...]→Image#fxor plain Ruby.The interpolation was never documented, and leaving it in place meant that passing user-supplied text to
annotatealso handed that text to an expression evaluator, a pixel and metadata reader, and an unbounded CPU sink — on a 1500x1500 image, a 10 KB caption of%[mean]took 78 seconds. It also corrupted ordinary text:%dexpanded to the directory the image had been read from, so a caption of"%d items"was drawn as/srv/app/uploads items.
Upgrading
- Text starting with
@is drawn instead of being read from that file.annotate(gc, 0, 0, 0, 20, '@notes.txt')now draws@notes.txt; read the file yourself if that is what you wanted. - RVG path data is validated against the SVG path grammar.
canvas.path(d)raisesArgumentErrorifdcontains anything outsideMmZzLlHhVvCcSsQqTtAa, digits,.,+-eEand whitespace. - Pathnames containing a NUL byte raise
ArgumentErrorinstead of being silently truncated. Draw#clip_pathandDraw#encodingnow quote their argument in the generated MVG, and values interpolated byDraw#enquotehave"and\escaped. Rendering is unchanged; this is only visible if you compareDraw#inspectoutput.- Text containing a backslash is now drawn as written. Previously a trailing
\escaped the closing delimiter of the MVG token, so the text was mangled.
Breaking Changes
- Reject embedded NUL bytes in pathname arguments by @Watson1978 in https://github.com/rmagick/rmagick/pull/1827
- Fix arbitrary file read in Draw#annotate with text starting with '@' by @Watson1978 in https://github.com/rmagick/rmagick/pull/1837
- Fix MVG injection from unvalidated RVG::Path data by @Watson1978 in https://github.com/rmagick/rmagick/pull/1839
- Fix MVG injection from unescaped values in Draw#enquote by @Watson1978 in https://github.com/rmagick/rmagick/pull/1841
- Draw annotation text as given instead of interpreting it by @Watson1978 in https://github.com/rmagick/rmagick/pull/1843
Improvements
- Fix grammar, typos, and content errors in the documentation by @Watson1978 in https://github.com/rmagick/rmagick/pull/1824
- Add Image#artifact to read the artifacts Image#define writes by @Watson1978 in https://github.com/rmagick/rmagick/pull/1842
Bug Fixes
- Fix unchecked SetImageArtifact() calls by @ndossche in https://github.com/rmagick/rmagick/pull/1822
- Fix copy_options() using the option value as the artifact key by @Watson1978 in https://github.com/rmagick/rmagick/pull/1823
- Fix Magick#set_log_event_mask() by @ndossche in https://github.com/rmagick/rmagick/pull/1826
- Fix SEGV in Info#stroke_width= and Info#attenuate= with a large Float by @Watson1978 in https://github.com/rmagick/rmagick/pull/1828
- Fix double free of the annotation text in Draw#annotate by @Watson1978 in https://github.com/rmagick/rmagick/pull/1829
- Fix double free of the interpreted text in Draw#get_type_metrics by @Watson1978 in https://github.com/rmagick/rmagick/pull/1830
- Fix use-after-free of cloned images in images_from_imagelist() by @Watson1978 in https://github.com/rmagick/rmagick/pull/1831
- Fix SEGV in Draw#marshal_load with a non-String pattern by @Watson1978 in https://github.com/rmagick/rmagick/pull/1832
- Fix heap over-read in Image#recolor by @Watson1978 in https://github.com/rmagick/rmagick/pull/1833
- Fix SEGV from integer overflow in Image#import_pixels geometry by @Watson1978 in https://github.com/rmagick/rmagick/pull/1834
- Fix heap over-read in Image#import_pixels with a long or empty map by @Watson1978 in https://github.com/rmagick/rmagick/pull/1835
- Fix memory leak in ImageList#composite_layers with an unusable source list by @Watson1978 in https://github.com/rmagick/rmagick/pull/1836
- Fix MVG injection in Draw#text from unescaped backslashes by @Watson1978 in https://github.com/rmagick/rmagick/pull/1838
- Fix RVG text being quoted twice and the added quotes being drawn by @Watson1978 in https://github.com/rmagick/rmagick/pull/1840
Full Changelog: https://github.com/rmagick/rmagick/compare/RMagick_7-0-5...RMagick_7-1-0
- C++
Published by Watson1978 22 days ago
https://github.com/rmagick/rmagick - RMagick 7.0.5
Bug Fixes
- Fix SEGV in Draw#primitive on non-String argument by @Watson1978 in https://github.com/rmagick/rmagick/pull/1813
- Fix SEGV when a Draw method is called on an uninitialized object by @Watson1978 in https://github.com/rmagick/rmagick/pull/1814
- Fix SEGV in Image/Pixel/Draw #marshal_load on a non-collection argument by @Watson1978 in https://github.com/rmagick/rmagick/pull/1815
- Fix heap overflow from integer overflow in dispatch/export_pixels geometry by @Watson1978 in https://github.com/rmagick/rmagick/pull/1816
Full Changelog: https://github.com/rmagick/rmagick/compare/RMagick_7-0-4...RMagick_7-0-5
- C++
Published by Watson1978 about 2 months ago
https://github.com/rmagick/rmagick - RMagick 7.0.4
Bug Fixes
- Reject NAN in Pixel#from_hsla() by @ndossche in https://github.com/rmagick/rmagick/pull/1798
- Fix error handling in Pixel#to_color when QueryColorname fails by @Watson1978 in https://github.com/rmagick/rmagick/pull/1800
- Fix memory leak when string conversion raises by @Watson1978 in https://github.com/rmagick/rmagick/pull/1805
- Fix memory leak and NULL deref in Image#properties by @Watson1978 in https://github.com/rmagick/rmagick/pull/1806
- Fix NULL dereference in KernelInfo instance methods by @Watson1978 in https://github.com/rmagick/rmagick/pull/1807
- Fix report size in rm_kernel_info_memsize by @Watson1978 in https://github.com/rmagick/rmagick/pull/1808
Full Changelog: https://github.com/rmagick/rmagick/compare/RMagick_7-0-3...RMagick_7-0-4
- C++
Published by Watson1978 2 months ago
https://github.com/rmagick/rmagick - RMagick 7.0.3
Bug Fixes
- Fix potential stack buffer overflows in format_exception and add_format_prefix by @Watson1978 in https://github.com/rmagick/rmagick/pull/1796
Full Changelog: https://github.com/rmagick/rmagick/compare/RMagick_7-0-2...RMagick_7-0-3
- C++
Published by Watson1978 3 months ago
https://github.com/rmagick/rmagick - RMagick 7.0.2
Bug Fixes
- Clean up ImageMagick resources on exit to fix ruby_memcheck false leaks by @ndossche in https://github.com/rmagick/rmagick/pull/1790
- Fix memory leaks if level operations fail in Image#{level_colors, levelize_channel} by @ndossche in https://github.com/rmagick/rmagick/pull/1791
- Fix memory leak in Image#{color_profile=, iptc_profile=} when out of memory by @ndossche in https://github.com/rmagick/rmagick/pull/1792
- Fix memory leak in Image#gamma_correct by @ndossche in https://github.com/rmagick/rmagick/pull/1793
- Fix missing error check in KernelInfo#clone by @ndossche in https://github.com/rmagick/rmagick/pull/1794
Full Changelog: https://github.com/rmagick/rmagick/compare/RMagick_7-0-1...RMagick_7-0-2
- C++
Published by Watson1978 3 months ago
https://github.com/rmagick/rmagick - RMagick 7.0.1
Bug Fixes
- Image_gray_q changes the colour space of the image, instead of returning whether it's grayscale (#1788)
- Check for errors from ParseGeometry() (#1786)
- Fail explicitly when trying to install on JRuby (#1784)
New Contributors
- @ndossche made their first contribution in https://github.com/rmagick/rmagick/pull/1786
Full Changelog: https://github.com/rmagick/rmagick/compare/RMagick_7-0-0...RMagick_7-0-1
- C++
Published by Watson1978 3 months ago
https://github.com/rmagick/rmagick - RMagick 7.0.0
Breaking Changes
- Drop support for Ruby 3.1 and older (#1749)
- Drop support for old ImageMagick (6.8.x and 7.0.x) (#1748)
Improvements
- Modernize argument parsing using keyword arguments API (#1754)
- Fix floating-point truncation in Magick::TypeMetric coordinates (#1765)
- Fix floating-point truncation in Magick::ChromaticityInfo coordinates (#1241)
- C++
Published by Watson1978 4 months ago