Merge pull request from GHSA-7hmr-442f-qc8j

The unit allocated for decNumberCompare was accidentally removed by
commit 680baeffeb7983e7570b5e68db07fe47f94db8c7 (PR #2804)

This caused a stack overflow when comparing a nan with a payload of 1000
or more.

This bug was found by OSS-fuzz.
Ref: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=64771
Fixes GHSA-7hmr-442f-qc8j

It also fixes 1e999999999 > 1e-1147483646   triggering UBSAN errors
Fixes #2968
3 files changed
tree: 41897506f258105a10ca9bcdb965cd925b7446b6
  1. .github/
  2. build/
  3. config/
  4. docs/
  5. m4/
  6. modules/
  7. scripts/
  8. sig/
  9. src/
  10. tests/
  11. .gitattributes
  12. .gitignore
  13. .gitmodules
  14. AUTHORS
  15. ChangeLog
  16. compile-ios.sh
  17. configure.ac
  18. COPYING
  19. Dockerfile
  20. jq.1.prebuilt
  21. jq.spec
  22. KEYS
  23. libjq.pc.in
  24. Makefile.am
  25. NEWS.md
  26. README.md
  27. SECURITY.md
README.md

jq

jq is a lightweight and flexible command-line JSON processor akin to sed,awk,grep, and friends for JSON data. It's written in portable C and has zero runtime dependencies, allowing you to easily slice, filter, map, and transform structured data.

Documentation

Installation

Prebuilt Binaries

Download the latest releases from the GitHub release page.

Docker Image

Pull the jq image to start quickly with Docker.

Building from source

Dependencies

  • libtool
  • make
  • automake
  • autoconf

Instructions

git submodule update --init # if building from git to get oniguruma
autoreconf -i               # if building from git
./configure --with-oniguruma=builtin
make -j8
make check
sudo make install

Build a statically linked version:

make LDFLAGS=-all-static

If you‘re not using the latest git version but instead building a released tarball (available on the release page), skip the autoreconf step, and flex or bison won’t be needed.

Cross-Compilation

For details on cross-compilation, check out the GitHub Actions file and the cross-compilation wiki page.

Community & Support

License

jq is released under the MIT License.