summaryrefslogtreecommitdiffhomepage
path: root/mrbgems/mruby-pack
AgeCommit message (Collapse)Author
2020-03-08Add configuration guard for `MRB_DISABLE_STDIO`dearblue
ref #4576 and ref #4947 * Need MRBAPI functions without `MRB_DISABLE_STDIO`: * mrbgems/mruby-bin-debugger * mrbgems/mruby-bin-mirb * mrbgems/mruby-bin-mrbc * mrbgems/mruby-bin-mruby * mrbgems/mruby-bin-strip * Need `stdio.h`: * mrbgems/mruby-io * mrbgems/mruby-print * Need `snprintf()` in `stdio.h`: * mrbgems/mruby-pack * mrbgems/mruby-sprintf
2020-03-08Remove unnecessary 'stdio.h'; ref #4947dearblue
'stdio.h' is included in 'mruby.h' ('mrbconf.h'). However, keep 'stdio.h' used by mruby-test.
2019-12-09Add "mruby developers" into some gems; Resolve #4709dearblue
It is writing side by side with the original authors.
2019-09-25Use inttypes for `snprintf()`dearblue
2019-09-13Remove unnecessary files from `mruby-{io,pack,socket}`.Yukihiro "Matz" Matsumoto
2019-08-05Use new specifiers/modifiers of `mrb_vfromat()`KOBAYASHI Shuji
The binary sizes (gems are only `mruby-bin-mruby`) are reduced slightly in my environment than before the introduction of new specifiers/modifiers (5116789a) with this change. ------------+-------------------+-------------------+-------- BINARY | BEFORE (5116789a) | AFTER (This PR) | RATIO ------------+-------------------+-------------------+-------- mruby | 593416 bytes | 593208 bytes | -0.04% libmruby.a | 769048 bytes | 767264 bytes | -0.23% ------------+-------------------+-------------------+-------- BTW, I accidentally changed `tasks/toolchains/visualcpp.rake` at #4613, so I put it back.
2019-07-30Refine message to `skip` in nested `assert`KOBAYASHI Shuji
- I think "Info" is used only to `skip`, so change to "Skip". - Changed the default value of `assert` and specify the argument explicitly at the caller of `assert` because it is unnatural "Assertion failed" is output even though the assertion doesn't fail. == Example: def assert_foo(exp, act) assert do assert_equal exp[0], act[0] assert_equal exp[1], act[1] end end def assert_bar(exp, act) assert do skip end end def assert_baz(exp, act) assert do assert_equal exp, act assert_bar exp, act end end assert 'test#skip_in_nested_assert' do assert_baz 1, 1 end === Before this patch: ?.. Info: test#skip_in_nested_assert (core) - Assertion[1] Info: Assertion failed (core) - Assertion[1-2] Skip: Assertion failed (core) Total: 3 OK: 2 KO: 0 Crash: 0 Warning: 0 Skip: 1 === After this patch: ??? Skip: test#skip_in_nested_assert (core) - Assertion[1] Skip: assert (core) - Assertion[1-2] Skip: assert (core) Total: 3 OK: 0 KO: 0 Crash: 0 Warning: 0 Skip: 3
2019-07-14Fix empty array refers; ref #4556dearblue
For example, `"".unpack("")` evaluates to `[]`.
2019-07-14Fix pack/unpack for base64; ref #4556dearblue
The pack/unpack "m" directive should be treated as a length rather than an element count.
2019-07-15Add pack/unpack test for base64dearblue
2019-06-29Use nested `assert`dearblue
2019-06-18Fix path of `error.h`.Hiroshi Mimaki
2019-05-28Fix missing assertions in `mruby-pack` testKOBAYASHI Shuji
2019-05-16Avoid potential type mismatch warnings in `pack.c`.Yukihiro "Matz" Matsumoto
2019-05-16Avoid potential integer overflow.Yukihiro "Matz" Matsumoto
2019-03-25Use uppercase version of `ctype` macros e.g. `ISSPACE`; fix #4338Yukihiro "Matz" Matsumoto
2019-01-03pack: Remove redundant float check in pack_utf8()KOBAYASHI Shuji
The argument is converted to fixnum before calling.
2018-12-22Define byte order macros, if not defined it and there are alternativesdearblue
2018-12-21Fixed a bug on platforms without `BYTE_ORDER`; ref #4190Yukihiro "Matz" Matsumoto
2018-12-21`mruby-pack` should not rely on `MRB_ENDIAN_BIG` macro; fix #4190Yukihiro "Matz" Matsumoto
The `MRB_ENDIAN_BIG` macro is originally used for `NaN` boxing. We cannot assume it is defined on every big endian platform (#4190 is the case). So instead of relying on untrusted `MRB_ENDIAN_BIG`, we use `BYTE_ORDER` macro with a fallback function to check endian in runtime.
2018-11-19Remove implicit conversion using `to_int` method.Yukihiro "Matz" Matsumoto
The ISO standard does not include implicit type conversion using `to_int`. This implicit conversion often causes vulnerability. There will be no more attacks like #4120. In addition, we have added internal convenience method `__to_int` which does type check and conversion (from floats).
2018-11-01Silence Appveyor's VC compilation warnings.Yukihiro "Matz" Matsumoto
2018-09-18Use `mrb_to_flo()` to check return value from `to_f`; fix #4115Yukihiro "Matz" Matsumoto
The ISO standard does not include implicit type conversion using `to_int`, `to_str` and sometimes `to_f`. For the compactness of the mruby implementation, maybe we should remove those implicit conversion from mruby.
2018-09-07Add a new method `unpack1` to `mruby-pack` gem.Yukihiro "Matz" Matsumoto
2018-09-07Fix heap buffer overflow in `unpack_a`; fix #4103Yukihiro "Matz" Matsumoto
2018-06-15Fixed wrong usages of `mrb_raisef()`; ref #4043Yukihiro "Matz" Matsumoto
`mrb_raisef()` only takes `%S` specifier. If you don't have extra arguments, use `mrb_raise()`.
2018-05-10Fix test of mruby-pack with big-endian CPUsNobuhiro Iwamatsu
When running the mruby-pack test with big endian, test data is incorrect, so it will fail with "i" and "I". ------ Fail: pack/unpack "i" (mrbgems: mruby-pack) - Assertion[1] Failed: Expected to be equal Expected: "\xff\xff\xc7\xcf" Actual: "\xff\xff\xcf\xc7" - Assertion[2] Failed: Expected to be equal Expected: [-12345] Actual: [-14385] Fail: pack/unpack "I" (mrbgems: mruby-pack) - Assertion[1] Failed: Expected to be equal Expected: "\x00\x0090" Actual: "\x00\x0009" - Assertion[2] Failed: Expected to be equal Expected: [12345] Actual: [14640] ------ This will fix the test data at big-endian. Signed-off-by: Nobuhiro Iwamatsu <[email protected]>
2018-03-02Round up the `dstlen` value; fix #3949Yukihiro "Matz" Matsumoto
The fix was proposed by https://hackerone.com/aerodudrizzt
2018-02-13Check `sizeof(base64_dec_tab)` in base64 encoding; fix #3947Yukihiro "Matz" Matsumoto
The issue (and the fix) reported by https://hackerone.com/aerodudrizzt
2018-02-13Check negative offset in `pack` method; fix #3944Yukihiro "Matz" Matsumoto
2018-02-13Fixed wrong offset in `pack_x` function; ref #3944Yukihiro "Matz" Matsumoto
2018-02-13Use 'mrb_raise` instead of `mrb_raisef` when no argument given.Yukihiro "Matz" Matsumoto
2018-02-10Check negative `count` in `pack_x` and `unpack_x`; fix #3944Yukihiro "Matz" Matsumoto
2018-02-09Check if `mruby-pack` template count overflow; fix #3942Yukihiro "Matz" Matsumoto
2017-12-13Added mrbgem's summary.Hiroshi Mimaki
2017-12-13Reduce VC++ type mismatch warnings.Yukihiro "Matz" Matsumoto
2017-12-12Do not use `FIXABLE` when `mrb_int` is big enough.Yukihiro "Matz" Matsumoto
2017-12-12Reduce type mismatch warnings in pack.c.Yukihiro "Matz" Matsumoto
2017-12-12Fixed the mixture of `int` and `long` in `mruby-pack`.Yukihiro "Matz" Matsumoto
2017-12-12Support MRB_WITHOUT_FLOAT to mruby-io and mruby-packYusuke Endoh
2017-12-11Reduce VC++ compiler warnings.Yukihiro "Matz" Matsumoto
2017-12-09Reduce VC++ compiler warnings.Yukihiro "Matz" Matsumoto
2017-12-07Avoid uninitialized local variables in `mruby-pack`.Yukihiro "Matz" Matsumoto
2017-12-07Add 'mrbgems/mruby-pack/' from commit '383a9c79e191d524a9a2b4107cc5043ecbf6190b'Yukihiro "Matz" Matsumoto
git-subtree-dir: mrbgems/mruby-pack git-subtree-mainline: 842e6945f2d0a519d7cf0525016830246cd337ab git-subtree-split: 383a9c79e191d524a9a2b4107cc5043ecbf6190b