rmagick 7.0.1 → 7.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: dde5ecba6c9f64a65d65582b49338a8d29e8385b3734f3a959b4c690f0c9ea66
4
- data.tar.gz: d133faa5b9ab9a6647b5de590538bdcebb86aacaedf1153c0bb1ac5235a63de7
3
+ metadata.gz: 32acca4c4c8093c4473e8ed5347b925e688b1674082a8b11731508da616ca859
4
+ data.tar.gz: 184b70abce972992538f018162aa2a31e31e4d5ca864f945fa829de22a788501
5
5
  SHA512:
6
- metadata.gz: 200d4179fbb2a170ac0e49ca3da399717d76eb5b66a66743fcefc3f4c75a107ecd90296c9c69446b8c7e690c966340c34b64f0c561a3826a86d3bb0d61a8eec7
7
- data.tar.gz: e301f6a39bac7a1302630bbba806b225381f07716e4514c555d1d39a4e773106bcfc6f61a95cb06ff1aff11044461e448797407585db40518edab77d4f996c48
6
+ metadata.gz: 0d100afa5ed1091828e68066199393d0a5fd472aa635b6edabc37a4d916a1efe0e8c44f65567cdcda099996d1d30aece01120715ba1dabdb040497c9f595e207
7
+ data.tar.gz: 850e978981ebca5d4c63c59b2f577f4c9138eb48cab4402a59f78a54e95cfaac56b9806d690e025bae5502235e713d0b53c72645dac1bbcc855e43b5b05fc042
data/CHANGELOG.md CHANGED
@@ -3,6 +3,22 @@
3
3
  All notable changes to this project are documented in this file.
4
4
  This project adheres to [Semantic Versioning](http://semver.org/).
5
5
 
6
+ ## RMagick 7.0.3
7
+
8
+ Bug Fixes
9
+
10
+ * Fix potential stack buffer overflows in format_exception and add_format_prefix (#1796)
11
+
12
+ ## RMagick 7.0.2
13
+
14
+ Bug Fixes
15
+
16
+ * Fix missing error check in KernelInfo#clone (#1794)
17
+ * Fix memory leak in Image#gamma_correct (#1793)
18
+ * Fix memory leak in Image#{color_profile=, iptc_profile=} when out of memory (#1792)
19
+ * Fix memory leaks if level operations fail in Image#{level_colors, levelize_channel} (#1791)
20
+ * Clean up ImageMagick resources on exit to fix ruby_memcheck false leaks (#1790)
21
+
6
22
  ## RMagick 7.0.1
7
23
 
8
24
  Bug Fixes
@@ -2930,6 +2930,7 @@ set_profile(VALUE self, const char *name, VALUE profile)
2930
2930
  info = CloneImageInfo(NULL);
2931
2931
  if (!info)
2932
2932
  {
2933
+ DestroyExceptionInfo(exception);
2933
2934
  rb_raise(rb_eNoMemError, "not enough memory to continue");
2934
2935
  }
2935
2936
 
@@ -7646,7 +7647,7 @@ Image_gamma_correct(int argc, VALUE *argv, VALUE self)
7646
7647
  }
7647
7648
 
7648
7649
  #if defined(IMAGEMAGICK_7)
7649
- CHECK_EXCEPTION();
7650
+ rm_check_exception(exception, new_image, DestroyOnError);
7650
7651
  DestroyExceptionInfo(exception);
7651
7652
  #else
7652
7653
  rm_check_image_exception(new_image, DestroyOnError);
@@ -8675,6 +8676,7 @@ Image_level_colors(int argc, VALUE *argv, VALUE self)
8675
8676
  #endif
8676
8677
  if (!okay)
8677
8678
  {
8679
+ DestroyImage(new_image);
8678
8680
  rb_raise(rb_eRuntimeError, "LevelImageColors failed for unknown reason.");
8679
8681
  }
8680
8682
 
@@ -8756,6 +8758,7 @@ Image_levelize_channel(int argc, VALUE *argv, VALUE self)
8756
8758
 
8757
8759
  if (!okay)
8758
8760
  {
8761
+ DestroyImage(new_image);
8759
8762
  rb_raise(rb_eRuntimeError, "LevelizeImageChannel failed for unknown reason.");
8760
8763
  }
8761
8764
  return rm_image_new(new_image);
@@ -15830,6 +15833,9 @@ void add_format_prefix(Info *info, VALUE file)
15830
15833
  {
15831
15834
  memset(magic, '\0', sizeof(magic));
15832
15835
  magic_l = p - filename;
15836
+ if (magic_l >= sizeof(magic)) {
15837
+ magic_l = sizeof(magic) - 1;
15838
+ }
15833
15839
  memcpy(magic, filename, magic_l);
15834
15840
 
15835
15841
  exception = AcquireExceptionInfo();
@@ -162,6 +162,10 @@ VALUE
162
162
  KernelInfo_clone(VALUE self)
163
163
  {
164
164
  KernelInfo *kernel = CloneKernelInfo((KernelInfo*)DATA_PTR(self));
165
+ if (!kernel)
166
+ {
167
+ rb_raise(rb_eNoMemError, "not enough memory to continue");
168
+ }
165
169
  return TypedData_Wrap_Struct(Class_KernelInfo, &rm_kernel_info_data_type, kernel);
166
170
  }
167
171
 
@@ -214,6 +214,12 @@ static void set_managed_memory(void)
214
214
 
215
215
 
216
216
 
217
+ static void
218
+ rmagick_terminus(VALUE unused)
219
+ {
220
+ MagickCoreTerminus();
221
+ }
222
+
217
223
  /**
218
224
  * Define the classes and constants.
219
225
  *
@@ -231,6 +237,7 @@ Init_RMagick2(void)
231
237
  set_managed_memory();
232
238
 
233
239
  MagickCoreGenesis("RMagick", MagickFalse);
240
+ rb_set_end_proc(rmagick_terminus, Qnil);
234
241
 
235
242
  test_Magick_version();
236
243
 
@@ -1574,15 +1574,11 @@ rm_check_image_exception(Image *imglist, ErrorRetention retention)
1574
1574
  static void
1575
1575
  format_exception(const ExceptionType severity, const char *reason, const char *description, char *msg)
1576
1576
  {
1577
- int len;
1578
1577
  memset(msg, 0, ERROR_MSG_SIZE);
1579
-
1580
- len = snprintf(msg, ERROR_MSG_SIZE, "%s%s%s",
1578
+ snprintf(msg, ERROR_MSG_SIZE, "%s%s%s",
1581
1579
  GetLocaleExceptionMessage(severity, reason),
1582
1580
  description ? ": " : "",
1583
1581
  description ? GetLocaleExceptionMessage(severity, description) : "");
1584
-
1585
- msg[len] = '\0';
1586
1582
  }
1587
1583
 
1588
1584
 
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Magick
4
- VERSION = '7.0.1'
4
+ VERSION = '7.0.3'
5
5
  MIN_RUBY_VERSION = '3.2.0'
6
6
  MIN_IM6_VERSION = '6.9.0'
7
7
  MIN_IM7_VERSION = '7.1.0'
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rmagick
3
3
  version: !ruby/object:Gem::Version
4
- version: 7.0.1
4
+ version: 7.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Tim Hunter