github libvips/libvips v8.18.1

13 hours ago

This release fixes a few reported bugs, plus a lot of bugs found by recent improvements to fuzzing (thanks @dloebl!).

  • vector: mask supported Highway targets by builtin targets [kleisauke]
  • fix Highway paths on big-endian targets [kleisauke]
  • fix build with MSVC [star-hengxing]
  • fix compatibility with glibc 2.43 [mtasaka]
  • pngload: avoid an expensive check during header read [kleisauke]
  • improve vips7 JPEG load compatibility [kleisauke]
  • fix saving 3-band MATRIX images [kleisauke]
  • uhdrload: expose original gainmap scale factor [lovell]
  • uhdrsave: control generated gainmap scale factor [lovell]
  • source: guard against length truncation [Niebelungen-D]
  • shrinkh: fix possible OOB read in Highway path [dloebl] [kleisauke]
  • string_to_array_double: ensure delimiter list is consistent [dloebl] [lovell]
  • fix loading/saving of non-8-bit JXL images [DarthSim]
  • invertlut: check height before interpolating values [dloebl] [lovell]
  • extract: check bounds using unsigned arithmetic [Niebelungen-D] [lovell]
  • matrixload: guard against empty and very large inputs [Niebelungen-D] [lovell]
  • unpremultiply: check alpha_band is in range [Niebelungen-D] [lovell]
  • maplut: ensure lookup table index is unsigned [dloebl] [lovell]
  • fwfft: fix heap-buffer-overflow for single-row images [dloebl]
  • draw_flood: reject out-of-bounds start point [dloebl]
  • openexrload: fix a leak with invalid images [kleisauke]
  • canny: fix UB in atan2 lookup table init [dloebl] [kleisauke]
  • conva: guard against divide by zero [kleisauke]
  • csvload: check whitespace and separator are ASCII [Niebelungen-D] [lovell]
  • bandrank: check index is in range [Niebelungen-D] [lovell]
  • remainder_const: guard against divide by zero [kleisauke]
  • vips_window_take: prevent int underflow for small mapped images [jcupitt]
  • composite: fix UB (invalid-enum-value) in ->build() [kleisauke]
  • add: prevent possible int overflow [kleisauke]
  • bandmean: prevent possible int overflow [kleisauke]
  • fastcor: prevent possible int overflow [kleisauke]
  • multiply: prevent possible int overflow [kleisauke]
  • subtract: prevent possible int overflow [kleisauke]
  • hist_cum: prevent possible int overflow [kleisauke]
  • convasep: prevent possible int overflow [kleisauke]
  • conva: prevent possible int overflow [kleisauke]
  • convi: prevent possible int overflow [kleisauke]
  • draw_circle: prevent possible int overflow [kleisauke]
  • csvload: guard against negative index access [kleisauke]
  • convi: guard against invalid shift [kleisauke]
  • nary: guard against empty input [kleisauke]
  • maplut: add missing overflow checks [kleisauke]
  • jpegsave: fix assert fail when saving 2-band image [kleisauke]
  • LabS2LabQ: fix UB (undefined-shift) [kleisauke]
  • convasep: use unsigned accumulator where appropriate [kleisauke]
  • min: fix possible OOB read with complex images [kleisauke]
  • max: fix possible OOB read with complex images [kleisauke]
  • guard against dimension overflow [ElhananHaenel] [kleisauke]
  • gifload: prevent int overflow on 32-bit platforms [ElhananHaenel] [kleisauke]
  • sign: use ready image instead of unary->in [kleisauke]
  • statistic: use ready image instead of statistic->in [kleisauke]
  • hist_plot: handle near-zero ranges for float images [kleisauke]
  • affine: check bounds using unsigned arithmetic [kleisauke]

Windows binaries here:

https://github.com/libvips/build-win64-mxe/releases/tag/v8.18.1

Don't miss a new libvips release

NewReleases is sending notifications on new releases.