Skip to content

Bump oj from 3.17.4 to 3.17.5 - #9

Closed
dependabot[bot] wants to merge 1 commit into
mainfrom
dependabot/bundler/oj-3.17.5
Closed

dependabot[bot] wants to merge 1 commit into
mainfrom
dependabot/bundler/oj-3.17.5

Conversation

@dependabot

@dependabot dependabot Bot commented on behalf of github Aug 4, 2026 •

Copy link
Copy Markdown
Contributor

Bumps oj from 3.17.4 to 3.17.5.

Release notes

Sourced from oj's releases.

v3.17.5

What's Changed

Most of this release comes out of a security review of the C extension. There are no API changes.

Memory safety

Memory leaks

Parsing and dumping

Rails

... (truncated)

Changelog

Sourced from oj's changelog.

3.17.5 - 2026-07-31

Most of this release comes out of a security review of the C extension. There are no API changes.

Memory safety

  • Fixed hash flooding by seeding the key hash per process. The hash was decided entirely at compile time, so a document of colliding keys turned key interning into O(n^2) and left the process slow for every later parse. (#1053)
  • Fixed a one byte buffer over-read on a document that ends with a backslash inside an unterminated string. (#1054)
  • Fixed two length underflows that made an empty ^m value and a key of exactly 65,536 bytes read forward until they left mapped memory. (#1055)
  • Fixed a SEGV from type confusion in class path resolution. A name segment that resolved to something other than a class or module was dereferenced as one. (#1056)
  • Fixed uninitialized stack memory being read into the message of an unresolved class name error. (#1057)
  • Fixed output buffer overflows when writing indentation, where several callers of fill_indent() had not assured the buffer first. (#1058)
  • Fixed the Oj::Doc path depth limit being checked one level too late. (#1061)
  • Fixed the use-after-free of a key when the value stack grows. (#1062)
  • Fixed the buffer over-read when a document ends where a key belongs. (#1063)
  • Fixed the id from a circular reference being used unchecked. (#1064)
  • Fixed the SEGV dumping an exception that was never raised, where the missing backtrace was read as an Array. (#1068)
  • Fixed the stack buffer overflow writing the error location. (#1071)
  • Fixed a read error in Oj::Parser#file being taken as a read of SIZE_MAX bytes, which wrote in front of the buffer and then reparsed it forever without checking for interrupts. (#1072)
  • Fixed a :float_format too long for the 64 byte buffer copying stack bytes past the end of it into the output. (#1073)
  • Fixed the double free of the default create_id when a call passes :create_id => nil. (#1074)
  • Fixed the buffer over-read of an odd attribute name and the leak of its arguments. (#1075)
  • Fixed the SEGV reading a truncated document with Oj::Parser#file and the descriptor it leaked. (#1076)
  • Fixed the SEGV from a malformed number in Oj::Doc. (#1077)
  • Fixed the stack exhaustion from a long key with :only or :except. (#1078)
  • Fixed the odd module match being decided by uninitialized memory. (#1079)
  • Fixed :float_format accepting directives it has no argument for. (#1083)

Memory leaks

  • Fixed the leak of an escaped hash key in the streaming parser. (#1067)
  • Fixed the leak of the parser create_id when it is set a second time. (#1085)
  • Fixed the leak of the parser when Oj::Parser.new or Oj::Parser.safe raises on an argument it does not take. (#1086)

Parsing and dumping

  • Fixed a safe parser limit of 4 being ignored. (#1065)
  • Fixed the exponent bound being checked after it is narrowed. (#1066)
  • Fixed a document being rejected when it opens with a number of 4093 digits or more read through a file descriptor or an IO, and the reader buffer that leaked when it grew. (#1069)
  • Fixed the safe parser limits being dropped when an option is set after the parser is built. (#1070)
  • Fixed the :custom mode dump of an exception that was never raised opening with {,. (#1082)
  • Fixed the :wab mode time load being an offset out on Windows, where mktime() stood in for timegm() and returned -1 for any time before the epoch. (#1088)
  • Fixed Oj::Doc dropping the exponent of a number written without a decimal point, so 1e3 loaded as 1. (#1089)

Rails

  • Fixed a to_json(only:) or to_json(except:) dropping the include_root_in_json wrapper key and the keys added by :methods. (#1039)
  • Fixed the as_json options reaching only the first element of a container, so to_json(only:), to_json(methods:) and any custom as_json(opts) took effect on one row and nowhere else. (#1040)
  • An encoder now reads the global optimized class table and options instead of copying them, saving about 6.7KB of malloc per ActiveSupport::JSON.encode, and picks up later Oj.default_options and ActiveSupport::JSON::Encoding changes. (#1049)
  • Fixed as_json being handed the encoder's own options hash. ActiveSupport allows as_json to write into it, and ActiveSupport 8.1 caches one encoder per process, so a single such as_json could leave :only set for every later to_json. (#1050)

... (truncated)

Commits
  • 04d3084 Update changelog
  • aae0079 Fix the 3.17.5 changelog entry saying only "Fixed multiple issues" (#1091)
  • 6d04d30 Fix the pre-1970 time tests being skipped on Windows for a limit that no long...
  • eaf0ad6 Fix Oj::Doc dropping the exponent of a number with no decimal point (#1089)
  • 7f683cd Fix the wab mode time load being an offset out on Windows (#1088)
  • c9bae55 Fix rake never running the test/test_*.rb suite (#1084)
  • f5d4af6 Add a job timeout to the workflows (#1087)
  • 2949015 Fix memory leak of the parser when Oj::Parser.new or .safe raises (#1086)
  • c08a078 Fix memory leak of the parser create_id when it is set again (#1085)
  • d3df7d9 Fix the custom mode dump of an unraised exception opening with "{," (#1082)
  • Additional commits viewable in compare view

Dependabot compatibility score

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


Dependabot commands and options

You can trigger Dependabot actions by commenting on this PR:

  • @dependabot rebase will rebase this PR
  • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
  • @dependabot show <dependency name> ignore conditions will show all of the ignore conditions of the specified dependency
  • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)

Bumps [oj](https://github.com/ohler55/oj) from 3.17.4 to 3.17.5.
- [Release notes](https://github.com/ohler55/oj/releases)
- [Changelog](https://github.com/ohler55/oj/blob/develop/CHANGELOG.md)
- [Commits](ohler55/oj@v3.17.4...v3.17.5)

---
updated-dependencies:
- dependency-name: oj
  dependency-version: 3.17.5
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
@dependabot dependabot Bot added dependencies Pull requests that update a dependency file ruby Pull requests that update ruby code labels Aug 4, 2026
@codecov

codecov Bot commented Aug 4, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ All tests successful. No failed tests found.

@dependabot @github

dependabot Bot commented on behalf of github Aug 12, 2026

Copy link
Copy Markdown
Contributor Author

Looks like oj is up-to-date now, so this is no longer needed.

@dependabot dependabot Bot closed this Aug 12, 2026
@dependabot
dependabot Bot deleted the dependabot/bundler/oj-3.17.5 branch August 12, 2026 08:09
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Pull requests that update a dependency file ruby Pull requests that update ruby code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants