extlz4 0.3.2 → 0.3.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/README.md +1 -11
- data/ext/blockapi.c +0 -35
- data/ext/frameapi.c +0 -11
- 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: 826b3cefef1cfe6adf9a63fe90eaf61d93d33a2889727eff519fe6dc58a1c76e
|
4
|
+
data.tar.gz: 9973dfeb967f847eace7c50e47e546e2148ae1e54ea9677285ec42a556f0012f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: '058521efb2e6a1940702f6ba4121e936f8fce02e6073f58ce32610330202e5afa9c0d427e6cabd9fa2be28434231b2bf2f1ab2c75a464ea2aea7067bae343493'
|
7
|
+
data.tar.gz: e3242ed13ea347b8a992fdb865640ba83b4a3accb1925bb4f1ec05caa59898e3a6113acb75d115bd9ecc2c1f3e36b94e279fdeb61bcc7189f9104672a8250157
|
data/README.md
CHANGED
@@ -59,16 +59,6 @@ extlz4-0.1.1 でその不具合の修正を行いました。
|
|
59
59
|
修復できるのはあくまで extlz4-0.1 のこの不具合に起因するファイルのみとなります。
|
60
60
|
|
61
61
|
|
62
|
-
## ABOUT TAINT STATE AND SECURITY (汚染状態とセキュリティについて)
|
63
|
-
|
64
|
-
extlz4 はオブジェクト間での汚染状態を一方向伝播します。
|
65
|
-
|
66
|
-
オブジェクトの汚染伝播については『入力 -> 出力』となり、
|
67
|
-
ストリーム処理の場合は『入力 -> 圧縮器・伸張器 -> 出力』というようになります。
|
68
|
-
|
69
|
-
セキュリティレベルによる処理の拒否は行いません。
|
70
|
-
|
71
|
-
|
72
62
|
## EXAMPLES (用例)
|
73
63
|
|
74
64
|
First, load extlz4. (最初に extlz4 を読み込んでください)
|
@@ -199,7 +189,7 @@ Ruby3 で追加された `Ractor` に対応しています。
|
|
199
189
|
- author: dearblue (mailto:dearblue@users.osdn.me)
|
200
190
|
- project page: <https://github.com/dearblue/ruby-extlz4>
|
201
191
|
- how to install: `gem install extlz4`
|
202
|
-
- version: 0.3.
|
192
|
+
- version: 0.3.3
|
203
193
|
- product quality: technical preview
|
204
194
|
- licensing: [2 clause BSD License](LICENSE)
|
205
195
|
- dependency gems: none
|
data/ext/blockapi.c
CHANGED
@@ -451,9 +451,6 @@ blkenc_setup(int argc, VALUE argv[], struct blockencoder *p, VALUE predict)
|
|
451
451
|
* call-seq:
|
452
452
|
* initialize(level = nil, predict = nil)
|
453
453
|
*
|
454
|
-
* [INFECTION]
|
455
|
-
* +self+ <- +predict+
|
456
|
-
*
|
457
454
|
* [RETURN]
|
458
455
|
* self
|
459
456
|
*
|
@@ -476,7 +473,6 @@ blkenc_init(int argc, VALUE argv[], VALUE enc)
|
|
476
473
|
}
|
477
474
|
|
478
475
|
blkenc_setup(argc, argv, p, Qnil);
|
479
|
-
rb_obj_infect(enc, p->predict);
|
480
476
|
|
481
477
|
return enc;
|
482
478
|
}
|
@@ -485,9 +481,6 @@ blkenc_init(int argc, VALUE argv[], VALUE enc)
|
|
485
481
|
* call-seq:
|
486
482
|
* update(src, dest = "") -> dest
|
487
483
|
* update(src, max_dest_size, dest = "") -> dest
|
488
|
-
*
|
489
|
-
* [INFECTION]
|
490
|
-
* +dest+ <- +self+ <- +src+
|
491
484
|
*/
|
492
485
|
static VALUE
|
493
486
|
blkenc_update(int argc, VALUE argv[], VALUE enc)
|
@@ -496,8 +489,6 @@ blkenc_update(int argc, VALUE argv[], VALUE enc)
|
|
496
489
|
VALUE src, dest;
|
497
490
|
size_t maxsize;
|
498
491
|
blockprocess_args(argc, argv, &src, &dest, &maxsize, NULL, aux_lz4_compressbound);
|
499
|
-
rb_obj_infect(enc, src);
|
500
|
-
rb_obj_infect(dest, enc);
|
501
492
|
char *srcp;
|
502
493
|
size_t srcsize;
|
503
494
|
RSTRING_GETMEM(src, srcp, srcsize);
|
@@ -517,9 +508,6 @@ blkenc_update(int argc, VALUE argv[], VALUE enc)
|
|
517
508
|
* reset(level = nil) -> self
|
518
509
|
* reset(level, predict) -> self
|
519
510
|
*
|
520
|
-
* [INFECTION]
|
521
|
-
* +self+ < +predict+
|
522
|
-
*
|
523
511
|
* Reset block stream encoder.
|
524
512
|
*/
|
525
513
|
static VALUE
|
@@ -527,7 +515,6 @@ blkenc_reset(int argc, VALUE argv[], VALUE enc)
|
|
527
515
|
{
|
528
516
|
struct blockencoder *p = encoder_context(enc);
|
529
517
|
blkenc_setup(argc, argv, p, p->predict);
|
530
|
-
rb_obj_infect(enc, p->predict);
|
531
518
|
|
532
519
|
return enc;
|
533
520
|
}
|
@@ -575,7 +562,6 @@ blkenc_savedict(int argc, VALUE argv[], VALUE enc)
|
|
575
562
|
memcpy(RSTRING_PTR(dict), p->prefix, p->prefixsize);
|
576
563
|
if (p->prefixsize > 0) {
|
577
564
|
rb_str_set_len(dict, p->prefixsize);
|
578
|
-
rb_obj_infect(dict, enc);
|
579
565
|
return dict;
|
580
566
|
} else {
|
581
567
|
return Qnil;
|
@@ -632,9 +618,6 @@ typedef int aux_lz4_encoder_f(const char *src, char *dest, int srcsize, int maxs
|
|
632
618
|
*
|
633
619
|
* 実装の都合上、圧縮関数は LZ4_compress_fast / LZ4_compress_HC が使われます。
|
634
620
|
*
|
635
|
-
* [INFECTION]
|
636
|
-
* +dest+ <- +src+
|
637
|
-
*
|
638
621
|
* [RETURN]
|
639
622
|
* 圧縮されたデータが文字列として返ります。dest を指定した場合は、圧縮データを格納した dest を返します。
|
640
623
|
*
|
@@ -689,7 +672,6 @@ blkenc_s_encode(int argc, VALUE argv[], VALUE lz4)
|
|
689
672
|
}
|
690
673
|
aux_str_reserve(dest, maxsize);
|
691
674
|
rb_str_set_len(dest, 0);
|
692
|
-
rb_obj_infect(dest, src);
|
693
675
|
|
694
676
|
int size = encoder(RSTRING_PTR(src), RSTRING_PTR(dest), srcsize, maxsize, level);
|
695
677
|
if (size <= 0) {
|
@@ -838,9 +820,6 @@ blkdec_setup(int argc, VALUE argv[], VALUE predict, struct blockdecoder *p)
|
|
838
820
|
* call-seq:
|
839
821
|
* initialize
|
840
822
|
* initialize(preset_dictionary)
|
841
|
-
*
|
842
|
-
* [INFECTION]
|
843
|
-
* +self+ < +preset_dictionary+
|
844
823
|
*/
|
845
824
|
static VALUE
|
846
825
|
blkdec_init(int argc, VALUE argv[], VALUE dec)
|
@@ -848,7 +827,6 @@ blkdec_init(int argc, VALUE argv[], VALUE dec)
|
|
848
827
|
struct blockdecoder *p = getdecoder(dec);
|
849
828
|
|
850
829
|
blkdec_setup(argc, argv, Qnil, p);
|
851
|
-
rb_obj_infect(dec, p->predict);
|
852
830
|
|
853
831
|
return dec;
|
854
832
|
}
|
@@ -857,9 +835,6 @@ blkdec_init(int argc, VALUE argv[], VALUE dec)
|
|
857
835
|
* call-seq:
|
858
836
|
* reset
|
859
837
|
* reset(preset_dictionary)
|
860
|
-
*
|
861
|
-
* [INFECTION]
|
862
|
-
* +self+ < +preset_dictionary+
|
863
838
|
*/
|
864
839
|
static VALUE
|
865
840
|
blkdec_reset(int argc, VALUE argv[], VALUE dec)
|
@@ -867,7 +842,6 @@ blkdec_reset(int argc, VALUE argv[], VALUE dec)
|
|
867
842
|
struct blockdecoder *p = getdecoder(dec);
|
868
843
|
|
869
844
|
blkdec_setup(argc, argv, p->predict, p);
|
870
|
-
rb_obj_infect(dec, p->predict);
|
871
845
|
|
872
846
|
return dec;
|
873
847
|
}
|
@@ -884,9 +858,6 @@ blkdec_reset(int argc, VALUE argv[], VALUE dec)
|
|
884
858
|
*
|
885
859
|
* 出力先は、max_dest_size が与えられていない場合、必要に応じて自動的に拡張されます。
|
886
860
|
* この場合、いったん圧縮された LZ4 データを走査するため、事前に僅かな CPU 時間を必要とします。
|
887
|
-
*
|
888
|
-
* [INFECTION]
|
889
|
-
* +dest+ < +self+ < +src+
|
890
861
|
*/
|
891
862
|
static VALUE
|
892
863
|
blkdec_update(int argc, VALUE argv[], VALUE dec)
|
@@ -896,8 +867,6 @@ blkdec_update(int argc, VALUE argv[], VALUE dec)
|
|
896
867
|
VALUE src, dest;
|
897
868
|
size_t maxsize;
|
898
869
|
blockprocess_args(argc, argv, &src, &dest, &maxsize, NULL, aux_lz4_scansize);
|
899
|
-
rb_obj_infect(dec, src);
|
900
|
-
rb_obj_infect(dest, dec);
|
901
870
|
const char *srcp;
|
902
871
|
size_t srcsize;
|
903
872
|
RSTRING_GETMEM(src, srcp, srcsize);
|
@@ -987,9 +956,6 @@ blkdec_s_linksize(VALUE mod, VALUE str)
|
|
987
956
|
*
|
988
957
|
* 出力先は、max_dest_size が与えられていない場合、必要に応じて自動的に拡張されます。
|
989
958
|
* この場合、いったん圧縮された LZ4 データを走査するため、事前に僅かな CPU 時間を必要とします。
|
990
|
-
*
|
991
|
-
* [INFECTION]
|
992
|
-
* +dest+ < +src+
|
993
959
|
*/
|
994
960
|
static VALUE
|
995
961
|
blkdec_s_decode(int argc, VALUE argv[], VALUE lz4)
|
@@ -1000,7 +966,6 @@ blkdec_s_decode(int argc, VALUE argv[], VALUE lz4)
|
|
1000
966
|
|
1001
967
|
aux_str_reserve(dest, maxsize);
|
1002
968
|
rb_str_set_len(dest, 0);
|
1003
|
-
rb_obj_infect(dest, src);
|
1004
969
|
|
1005
970
|
int size = LZ4_decompress_safe(RSTRING_PTR(src), RSTRING_PTR(dest), RSTRING_LEN(src), maxsize);
|
1006
971
|
if (size < 0) {
|
data/ext/frameapi.c
CHANGED
@@ -210,7 +210,6 @@ fenc_init(int argc, VALUE argv[], VALUE enc)
|
|
210
210
|
rb_str_set_len(p->workbuf, s);
|
211
211
|
rb_funcall2(outport, id_op_lshift, 1, &p->workbuf);
|
212
212
|
p->outport = outport;
|
213
|
-
rb_obj_infect(p->outport, enc);
|
214
213
|
return enc;
|
215
214
|
}
|
216
215
|
|
@@ -244,9 +243,6 @@ fenc_write(int argc, VALUE argv[], VALUE enc)
|
|
244
243
|
struct encoder *p = getencoder(enc);
|
245
244
|
VALUE src;
|
246
245
|
rb_scan_args(argc, argv, "1", &src);
|
247
|
-
rb_obj_infect(enc, src);
|
248
|
-
rb_obj_infect(enc, p->workbuf);
|
249
|
-
rb_obj_infect(p->outport, enc);
|
250
246
|
fenc_update(p, src, NULL);
|
251
247
|
return enc;
|
252
248
|
}
|
@@ -255,9 +251,6 @@ static VALUE
|
|
255
251
|
fenc_push(VALUE enc, VALUE src)
|
256
252
|
{
|
257
253
|
struct encoder *p = getencoder(enc);
|
258
|
-
rb_obj_infect(enc, src);
|
259
|
-
rb_obj_infect(enc, p->workbuf);
|
260
|
-
rb_obj_infect(p->outport, enc);
|
261
254
|
fenc_update(p, src, NULL);
|
262
255
|
return enc;
|
263
256
|
}
|
@@ -455,7 +448,6 @@ fdec_init(int argc, VALUE argv[], VALUE dec)
|
|
455
448
|
rb_scan_args(argc, argv, "1", &inport);
|
456
449
|
LZ4F_errorCode_t err = LZ4F_createDecompressionContext(&p->decoder, LZ4F_VERSION);
|
457
450
|
aux_lz4f_check_error(err);
|
458
|
-
rb_obj_infect(dec, inport);
|
459
451
|
p->inport = inport;
|
460
452
|
p->readbuf = rb_str_buf_new(0);
|
461
453
|
char *readp;
|
@@ -591,7 +583,6 @@ fdec_read(int argc, VALUE argv[], VALUE dec)
|
|
591
583
|
VALUE dest;
|
592
584
|
fdec_read_args(argc, argv, &size, &dest);
|
593
585
|
if (size == 0) {
|
594
|
-
rb_obj_infect(dest, dec);
|
595
586
|
return dest;
|
596
587
|
}
|
597
588
|
|
@@ -616,7 +607,6 @@ fdec_read(int argc, VALUE argv[], VALUE dec)
|
|
616
607
|
rb_str_resize(tmpbuf, 0);
|
617
608
|
}
|
618
609
|
|
619
|
-
rb_obj_infect(dest, dec);
|
620
610
|
|
621
611
|
if (RSTRING_LEN(dest) > 0) {
|
622
612
|
return dest;
|
@@ -644,7 +634,6 @@ fdec_getc(VALUE dec)
|
|
644
634
|
size_t s = fdec_read_decode(dec, p, &ch, 1);
|
645
635
|
if (s > 0) {
|
646
636
|
VALUE v = rb_str_new(&ch, 1);
|
647
|
-
rb_obj_infect(v, dec);
|
648
637
|
return v;
|
649
638
|
} else {
|
650
639
|
return Qnil;
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: extlz4
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.3.
|
4
|
+
version: 0.3.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- dearblue
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2022-10-05 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rake
|
@@ -176,7 +176,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
176
176
|
- !ruby/object:Gem::Version
|
177
177
|
version: '0'
|
178
178
|
requirements: []
|
179
|
-
rubygems_version: 3.
|
179
|
+
rubygems_version: 3.3.7
|
180
180
|
signing_key:
|
181
181
|
specification_version: 4
|
182
182
|
summary: ruby bindings for LZ4
|