ruby-xz 1.0.2 → 1.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 +4 -4
- data/HISTORY.rdoc +9 -3
- data/README.md +1 -1
- data/lib/xz/stream.rb +5 -2
- data/lib/xz/version.rb +1 -1
- data/lib/xz.rb +11 -4
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: efe7c4ed9a4c30ce23e8328060b458e36a29b7b31d17528a4acb842c461a6b11
|
4
|
+
data.tar.gz: f8c55ee6bf356b87d8511ff45bfcc481b17bc8475477a7dd9df56b69c7185a6b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b61b2e26837ce216cdc03286e3c52d4fd38a01f95d158556d0ed9ed4f347d289e575f6bdd5da236265ba4a37ee9c779f98db37f663edce2308a874e6cedd9a16
|
7
|
+
data.tar.gz: a93055f9f309a7adf464b392cd9e5ac2bce97ae9f97bf37fec16d5f537ac2cd6d590d88a9ab6e6786be586eed841137bba29946de90bbf601124c695556af003
|
data/HISTORY.rdoc
CHANGED
@@ -1,11 +1,17 @@
|
|
1
1
|
= Version history
|
2
2
|
|
3
|
+
== 1.0.3 (2022-03-28)
|
4
|
+
* *Fix* a number of memory leaks by freeing allocated liblzma data structures
|
5
|
+
(Issue Quintus#20 reported by xTRiM, PR win93#7 by Alex Gittemeier)
|
6
|
+
|
3
7
|
== 1.0.2 (2021-11-28)
|
4
|
-
* Fix a deprecation warning and some other gemspec concerns
|
8
|
+
* *Fix* a deprecation warning and some other gemspec concerns
|
9
|
+
(Issue win93#5, PR win93#6 by Alex Gittemeier)
|
5
10
|
|
6
11
|
== 1.0.1 (2021-11-13)
|
7
|
-
* Fix a buffer overflow error in XZ::Stream (PR Quintus#17 by genail)
|
8
|
-
* Fix an issue with transcode_options that was introduced by Ruby 3
|
12
|
+
* *Fix* a buffer overflow error in XZ::Stream (PR Quintus#17 by genail)
|
13
|
+
* *Fix* an issue with transcode_options that was introduced by Ruby 3
|
14
|
+
(PR win93#1 by Alex Gittemeier)
|
9
15
|
* Update project README, gemspec, and other metadata to reflect a change in
|
10
16
|
maintainership. All prior releases were released by Marvin Gülker.
|
11
17
|
|
data/README.md
CHANGED
@@ -110,7 +110,7 @@ To release a new version:
|
|
110
110
|
- Switch to the `development` branch.
|
111
111
|
- Bump `lib/xz/version.rb`, run `bundle install`, then commit the result.
|
112
112
|
- Switch to the `stable` branch.
|
113
|
-
- Run `git merge
|
113
|
+
- Run `git merge development`
|
114
114
|
- Run `rake release`, which will create/push a git tag and publish the `.gem`
|
115
115
|
file to [rubygems.org].
|
116
116
|
|
data/lib/xz/stream.rb
CHANGED
@@ -155,9 +155,9 @@ class XZ::Stream
|
|
155
155
|
# Reset internal state
|
156
156
|
@pos = @lineno = 0
|
157
157
|
@finished = false
|
158
|
-
|
159
|
-
# Allocate a new lzma stream (subclasses will configure it).
|
160
158
|
@lzma_stream = XZ::LibLZMA::LZMAStream.malloc
|
159
|
+
@input_buffer_p = Fiddle::Pointer.malloc(XZ::CHUNK_SIZE)
|
160
|
+
@output_buffer_p = Fiddle::Pointer.malloc(XZ::CHUNK_SIZE)
|
161
161
|
XZ::LibLZMA::LZMA_STREAM_INIT(@lzma_stream)
|
162
162
|
|
163
163
|
0 # Mimic IO#rewind's return value
|
@@ -211,6 +211,9 @@ class XZ::Stream
|
|
211
211
|
# Clean up the lzma_stream structure's internal memory.
|
212
212
|
# This would belong into a destructor if Ruby had that.
|
213
213
|
XZ::LibLZMA.lzma_end(@lzma_stream)
|
214
|
+
Fiddle.free @lzma_stream.to_ptr
|
215
|
+
Fiddle.free @input_buffer_p
|
216
|
+
Fiddle.free @output_buffer_p
|
214
217
|
@finished = true
|
215
218
|
|
216
219
|
@delegate_io
|
data/lib/xz/version.rb
CHANGED
data/lib/xz.rb
CHANGED
@@ -218,8 +218,10 @@ module XZ
|
|
218
218
|
end
|
219
219
|
|
220
220
|
LibLZMA.lzma_end(stream.to_ptr)
|
221
|
+
res = stream.total_out if block_given?
|
221
222
|
|
222
|
-
|
223
|
+
Fiddle.free stream.to_ptr
|
224
|
+
res
|
223
225
|
end
|
224
226
|
alias decode_stream decompress_stream
|
225
227
|
|
@@ -317,8 +319,10 @@ module XZ
|
|
317
319
|
end
|
318
320
|
|
319
321
|
LibLZMA.lzma_end(stream.to_ptr)
|
322
|
+
res = stream.total_out if block_given?
|
320
323
|
|
321
|
-
|
324
|
+
Fiddle.free stream.to_ptr
|
325
|
+
res
|
322
326
|
end
|
323
327
|
alias encode_stream compress_stream
|
324
328
|
|
@@ -458,8 +462,8 @@ module XZ
|
|
458
462
|
# time--this is needed to allow (de-)compressing of very large
|
459
463
|
# files that can't be loaded fully into memory.
|
460
464
|
def lzma_code(io, stream)
|
461
|
-
input_buffer_p = Fiddle::Pointer.malloc(CHUNK_SIZE)
|
462
|
-
output_buffer_p = Fiddle::Pointer.malloc(CHUNK_SIZE)
|
465
|
+
input_buffer_p = Fiddle::Pointer.malloc(CHUNK_SIZE)
|
466
|
+
output_buffer_p = Fiddle::Pointer.malloc(CHUNK_SIZE)
|
463
467
|
|
464
468
|
while str = io.read(CHUNK_SIZE)
|
465
469
|
input_buffer_p[0, str.bytesize] = str
|
@@ -502,6 +506,9 @@ module XZ
|
|
502
506
|
break unless stream.avail_out == 0
|
503
507
|
end #loop
|
504
508
|
end #while
|
509
|
+
|
510
|
+
Fiddle.free input_buffer_p
|
511
|
+
Fiddle.free output_buffer_p
|
505
512
|
end #lzma_code
|
506
513
|
|
507
514
|
# Checks for errors and warnings that can be derived from the
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ruby-xz
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Marvin Gülker
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date:
|
12
|
+
date: 2022-03-28 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: minitar
|
@@ -109,7 +109,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
109
109
|
- !ruby/object:Gem::Version
|
110
110
|
version: '0'
|
111
111
|
requirements: []
|
112
|
-
rubygems_version: 3.
|
112
|
+
rubygems_version: 3.3.7
|
113
113
|
signing_key:
|
114
114
|
specification_version: 4
|
115
115
|
summary: XZ compression via liblzma for Ruby, using fiddle.
|