Search Results for: libfastjson

New Version Release of libfastjson: Enhanced Optimization for liblognorm – Version 1.2304.0

We are excited to announce the latest version of libfastjson, version 1.2304.0, offering enhanced optimizations specifically tailored for liblognorm processing. This update brings not only a change in the release numbering to align with rsyslog standards but also includes a crucial security fix.

Highlights of the Release:

  • Updated Release Numbering Scheme: Adopting a release numbering scheme similar to rsyslog, we aim for greater consistency and clarity across our projects.
  • Security Enhancement: The release addresses CVE-2020-12762. We acknowledge and thank Wang Haitao for the valuable patch. It’s noteworthy that this CVE had no impact on rsyslog usage due to inherent size limits.

Changelog for Version 1.2304.0 (2023-04-18):

  1. Transition to a release numbering scheme mirroring that of rsyslog.
  2. Patch for CVE-2020-12762, reinforcing the security of the library.

Download the Latest Version:

The new version of libfastjson can be downloaded from: libfastjson 1.2304.0 Download

Checksum (sha256sum): ef30d1e57a18ec770f90056aaac77300270c6203bbe476f4181cc83a2d5dc80c

libfastjson 0.99.8 released

This is a new fork of the json-c library, which is optimized for liblognorm processing.

This release provides several fixes to libfastjson. Most notably is the bugfix for proper handling of constant key names. For more details, please refer to the changelog below.

Changelog:

0.99.8 2017-12-18
– make build under gcc7 with strict settings (warning==error)
– bugfix: constant key names not properly handled
if fjson_object_object_add_ex() is used with option
FJSON_OBJECT_KEY_IS_CONSTANT, fjson_object_object_del() will still
try to delete the key name. Depending on use, this can lead to
double-free, use-after-free or no problem.
see also https://github.com/rsyslog/rsyslog/issues/1839
closes https://github.com/rsyslog/libfastjson/issues/148
– fix potentially invalid return value of fjson_object_iter_begin
this could lead to callers doing improper opreations and thus
could lead to a segfault in callers
detected by Coverity scan, CID 198891
– fix small potential memory leak in json_tokener (unlinkely to occur)
detected by Coverity Scan, CID 198890

Download:

http://download.rsyslog.com/libfastjson/libfastjson-0.99.8.tar.gz

sha256sum: 3544c757668b4a257825b3cbc26f800f59ef3c1ff2a260f40f96b48ab1d59e07

As always, feedback is appreciated.

Best regards,
Florian Riedl

libfastjson 0.99.7 released

This is a new fork of the json-c library, which is optimized for liblognorm processing.

This release adds the option for case-insensitive comparisons and removes userdata and custom-serialization functions. For more details, please refer to the changelog below.

Changelog:

0.99.7 2017-10-17
– added option for case-insensitive comparisons
This permits to search for json keys in a case-sensitive way. The default is “off”, as this is against the JSON spec. However, rsyslog needs this capability to increase usability inside the variable system.
We add a new API call to switch between case-sensitive and case-insensitive comparison, with case-sensitive being the default.
closes https://github.com/rsyslog/libfastjson/issues/142
– Removed userdata and custom-serialization functions
Reasoning (from pull request):
The library uses the concept of “userdata” and “custom serialization functions” that can be set from user space. However, to effectively make use of this feature, a user must have a deep understanding of the internal data representation of the library, which makes this feature not very useful.
But what is worse: internally, the library itself also sometimes assigns data to this userdata member (especially when working with doubles), and it also sometimes assigns alternative serialization functions. This makes the feature even more unusable, because as a user you never can know when the userdata pointer is save to use for your own settings, and when you must leave it alone because it is used by the library.
Long story short. In this pull request I got rid of the userdata pointer completely. The case where the library was using the “userdata” (for storing the original string representation of a parsed double) has been moved into the union that is already used for storing values.
see also: https://github.com/rsyslog/libfastjson/pull/141
Thanks to Emiel Bruijntjes for the patch.

Download:

http://download.rsyslog.com/libfastjson/libfastjson-0.99.7.tar.gz

sha256sum: 373cca41cad90fd288998696cd56cc72df75fb094db82b4e95d78fa61910f690

As always, feedback is appreciated.

Best regards,
Florian Riedl

libfastjson 0.99.6 released

This is a new fork of the json-c library, which is optimized for liblognorm processing.

This release fixes a build issue under Solaris.

Changelog:

0.99.6 2017-05-12
– fix a build issue under Solaris

Download:

http://download.rsyslog.com/libfastjson/libfastjson-0.99.6.tar.gz

sha256sum: 95e3d371c82b5d85c7294d46c923b3fee0384e1541a1556f0ca185170eb27270

As always, feedback is appreciated.

Best regards,
Florian Riedl

libfastjson 0.99.5 released

This is a new fork of the json-c library, which is optimized for liblognorm processing.

This release brings a lot of fixes and changes. Most notably, libfastjson now builds under AIX and under Solaris again.

Changelog:

0.99.5 2017-05-03
– fix tautology comparison in tautology in `fjson_object_iter_equal`
– made build under Solaris again
– made to build under AIX
Thanks to github user purnimam1 for the patch
– fix floating point representation when fractional part is missing
see also https://github.com/rsyslog/libfastjson/issues/126
Thanks to Jan Gerhards for the patch.
– m4: fix detection of atomics
In cross-compilation, it is impossible to run code at configure time to
detect the target specifics.
As such, AC_TRY_RUN fails miserably to detect reliably that atomic
intrisics are present in a toolchain, and decides they are not just
because this is cross-compilation.
Instead of AC_TRY_RUN, use AC_LINK_IFELSE that does not need to actually
run code, since all we’re interested in is whether the intrisics are
present (or not). Fix both the 32- and 64-bit variants, even if the
latter is not used currently.
Fixes build failures detected by the Buildroot autobuilders, like:
http://autobuild.buildroot.org/results/23a/23ac0e742ed3a70ae4d038f8c9eadc23e708f671/build-end.log
http://autobuild.buildroot.org/results/192/1923d0b570adba494f83747a9610ea6ec35f5223/build-end.log
and many other cases, espcially on architectures where such intrsics are
present, but where the toolchain does not have threads (and anyway, it
is much more efficient to use the intrisics rather than use mutexes).
Thanks to Yann E. MORIN for the patch.
– add fjson_object_dump() and fjson_object_write() functions
… that make it possible to dump the json tree without having to
dynamically allocate a string, and to write the tree to a FILE*.
NOTE: right now, most of the code is simply copied from the functions
that use the “printbuf” for writing the data. I have not touched the old
printbuf-implementation, because some other code may still rely on it.
However, in my opinion these printbuf-based functions (if it is desirable
to keep them in the first place) can now be re-implemented to use the more
flexible fjson_object_dump() function.
MAINTAINER NOTE: we need to performance-test any new implementation and will
do so. The results will ultimately decide which parts of the code remain in
the codebase.
Thanks to Emiel Bruijntjes for the patch.

Download:

http://download.rsyslog.com/libfastjson/libfastjson-0.99.5.tar.gz

sha256sum: 8aecdc111da2beebc09e99e2b51e13b70f219c5a095c38db953a75fde51779e9

As always, feedback is appreciated.

Best regards,
Florian Riedl

libfastjson 0.99.3 released

We have released libfastjson 0.99.3.

This is a new fork of the json-c library, which is optimized for liblognorm processing.

The changes are mostly for cleanup purposes. Also some bug have been fixed, like a potential segfault issue, “make distcheck” not working and more.

Changelog:

0.99.3 2016-07-11
– new dependency: autoconf-archive
– exit() is no longer called in unexpected situations
The previous code called exit on some occasions and did not
give the caller a chance to do any cleanup or handling on
it’s own. This has completely been removed. Note that it was
very unlikely that this problem affected a caller, as exit()
was only called under very rare circumstances (e.g. OOM).
– fjson_version now returns configure VERSION
This avoid inconsistency.
– removal of Windows and Android bits
Thanks to Michael Biebl for the patch.
– fixes of the build system
Thanks to Michael Biebl for the patch.
– dropped support for Windows and Android as we do not target
these platforms
– “make distcheck” now works
– fix invalid Unicode representation for some non US-ASCII
characters when printed as string. Note that this could
potentially also lead to a segfault

Download:

http://download.rsyslog.com/libfastjson/libfastjson-0.99.3.tar.gz

sha256sum: be5604a9f61b3b247b45bc6234e8bfb5da5dd1e405d07fb8e52b1ea6e2a27fee

As always, feedback is appreciated.

Best regards,
Florian Riedl

libfastjson 0.99.2 released

We have released libfastjson 0.99.2.

This is a new fork of the json-c library, which is optimized for liblognorm processing.

The changes consist of a new API and compatibility with autoconf < 2.64.

Changelog:

0.99.2 2016-03-07
– new API: json_object_get_member_count()
– make comaptible with autoconf < 2.64

Download:

http://download.rsyslog.com/libfastjson/libfastjson-0.99.2.tar.gz

sha256sum: 6ff053d455243a81014f37b4d81c746d9b8d40256a56326c3a7921c8bf458dfd

As always, feedback is appreciated.

Best regards,
Florian Riedl

libfastjson 0.99.0 released

We have released libfastjson 0.99.0.

This is a new fork of the json-c library, which is optimized for liblognorm processing.

More details are available here: rsyslog and liblognorm will switch to libfastjson as replacement for json-c

Changelog:

0.99.0 2015-12-22
– bugfix: reference counting was not thread-safe

Download:

http://download.rsyslog.com/libfastjson/libfastjson-0.99.0.tar.gz

sha256sum: 5d19c39daaedfd9b335f6222b521e7529016bc11382cccebe41a9894d4ab32fd

As always, feedback is appreciated.

Best regards,
Florian Riedl

rsyslog 8.32.0 (v8-stable) released

Today, we release rsyslog 8.32.0. This realease, again, sports a vast number of changes. E.g. there are a number of new or updated build requirements, namely: libfastjson 0.99.8, libczmq >= 3.0.2 and libcurl. Otherwise most notably is the major update that ompgsql has received through contribution. Other changes include modules like pmrfc3164, omhiredis, mmexternal, omprog, imfile, omfile, mmpstrucdata. The full list of changes to rsyslog can be reviewed in the Changelog.

We have also made some major changes to the RHEL/CentOS packages for rsyslog. We are now using a modified spec file from the CentOS base repository for building the EL7 release RPM. We decided to go this way out of several reasons. The major reason was a huge issue with the startup scripts that we used, which did not really work well on EL7 systems. More details are available here: http://www.rsyslog.com/major-centos7-rpm-changes/ and here: https://github.com/rsyslog/rsyslog/issues/2134#issuecomment-355483536

Another reason is, that we wanted to make our own RPMs more similar to those in the base repository to avoid major conflicts in the future. That also means, that some additional module packages are not available anymore, because they are now included in the base rsyslog package (mmanon, mmutf8fix, ommail and pmaixforwardedfrom). All other additional sub-packages are still available.

Because the Launchpad build environment [1] is currently unavailable, we cannot produce packages for Ubuntu at the moment. They will be published once the systems are available again.

ChangeLog:

[1] https://lists.ubuntu.com/archives/launchpad-announce/2018-January/000103.html

Major CentOS7 RPM changes

We made some major changes to the way the RPMs for CentOS7/RHEL7 are built. We have adapted the spec file definitions of the base repo to build our own RPMs after we detected some trouble with the last released version. That means, that some things will also change, so our RPMs are more like the official ones.

Stock CentOS 7 8.24.0 package to 8.32.0-1 package upgrade

The upgrade completes and the same functionality present before is present here. Because the syntax was obsolete legacy format before and the format is obsolete legacy format now the /etc/rsyslog.d/listen.conf file passes validation checks (rsyslogd -N6) without issue.

That said, the /etc/rsyslog.d/listen.conf file doesn’t really do anything because the /etc/rsyslog.conffile disables local logging and the /usr/lib/systemd/system/rsyslog.repo unit file doesn’t enable socket activation (basically the symlink from /etc/systemd/system/syslog.service to /usr/lib/systemd/system/rsyslog.service wasn’t created and systemd doesn’t create the /run/systemd/journal/syslog socket for rsyslog to read from).

Not a problem here because the conf file was stock before and is still stock (now upstream Adiscon copy), so imjournal is used to pull log messages (API?) instead of via a socket.

Adiscon repo 8.31.0-4 stable package (with unmodified Adiscon RPM config) to 8.32.0-1 package upgrade

After installing the 8.31.0-4 package (the last one), systemctl disable rsyslog; systemctl enable rsyslog and that workaround seemed to allow that version to function as expected (restart, start, stop). A now performed upgrade to the new package and rebooted. Prior to that, attempting to run systemctl status rsyslogwarned me that I should run systemctl daemon-reload (or restart) to sort things out.

After a restart, all stock settings appeared to function normally. The upgrade (yum install rsyslog) pulled in the needed libfastjson package version without my explicitly specifying to install that package. The /etc/rsyslog.conf file included in the previous stable version was replaced, but this was to be expected because I did not modify the previous conf file (thus the checksums match).

Adiscon repo 8.31.0-4 with custom config to 8.32.0-1 package upgrade

In short, the symlink from /etc/systemd/system/syslog.service to /usr/lib/systemd/system/rsyslog.service wasn’t created and systemd doesn’t create the /run/systemd/journal/syslog socket for rsyslog to read from. In a setup where imuxsock is used, not imjournal this means that rsyslog was not able to read from the socket. To restore this functionality, you have to create a drop-in to restore the socket activation.

Once you did that and either rebooted or ran systemctl daemon-reload, the /run/systemd/journal/syslogsocket was restored.

Addendum

Unmodified configurations should continue to work as before, so there is that.

Users of rsyslog who are using the Adiscon RPMs for a while now, may notice a change in the available module packages because the modules are now incorporated in the basic rsyslog package as in the RPM from the base repo. The affected module packages are (now no longer needed):

rsyslog-mmanon
rsyslog-mmutf8fix
rsyslog-mail
rsyslog-pmaixforwardedfrom

Scroll to top