+

+ The Featureless Linux Library stable version 0.6.11 is released. +

+

+ This release brings in fixes for problems exposed by more regular use of and by active development on the 0.7.x development branch. + In particular, the Controller program has seen a lot of fixes and improvements. +

+

+ I have been working on additional projects, such as Tacocat. + This project has a different structure and has revealed some bugs or mistakes in the fakefile and settings standards for the Featureless Make program. + I have already been aware of this potential problem but I had been hoping that I would not need to implement a new feature in the standard. + Unfortunately, I have concluded that I do in fact need a new feature. + The fakefile and settings standards now support a new Object called stage. + I chose the word stage to avoid conflicts with existing build focused Object names. + This new feature in the standard fixes a bug where multiple settings might conflict with each other. + I opted to classify this new feature as a bug fix. + This change further exposed an oversight where slashes are not supposed to be supported in the build name Object and the version Objects. + The new stage Object as well as the build_name, version_major, version_major_prefix, version_minor, version_minor_prefix, version_micro, version_micro_prefix, version_nano, version_nano_prefix and version_target Objects now explicitly prohibit slashes. +

+

+ I also found some notable bugs in the FSS read programs. + The processing of comments is incorrect and the ranges being processed are entirely missing the necessary range checks. + I back ported the runtime tests for the FSS read programs to better help catch problems and regressions. +

+

+ A new feature is created for the Simple Packet (FSS-000F) standard for adding support for a magic block. + A magic block provides the ability to identify the type of packet being transmitted. + This has performance, firewalling, and also local storage implications. + The packets can be directly saved as a file and that file can be easily identified and read. + This does not define the magic identifiers themselves. + This only adds the functionality to specify them. + For security reasons, the presence of the magic block is optional. + There is not network functionality in the 0.6 versions of the FLL project. + This is only a change to the standard. + The 0.7 versions and later of the FLL project implement network related functionality. +

+

+ The memory consumption consumed by certain functions is now greatly reduced. + The lazy allocation process works really well, except for certain key conditions. + One of these conditions is when the allocation step is set to some large value, such as 128. + Then, a huge amount of arrays are allocation, each with only one or two elements in the array. + I found that when using fss_basic_read on a large data set that I would incur an 8 Gigabyte memory allocation cost. + After the optimization that same allocation cost went down to about 500 Megabytes. + The reason for this is directly because of about four or five differernt one element arrays are being allocation for maybe 2,000,000 Objects in some file. + The optimization has a cost of additional logic and a few more allocations for small arrays. + This is not considered too expensive because these arrays are small and the cost of re-allocating them is relatively inexpensive. +

+

+ The following are changes since the 0.6.10 stable release. +

+

+ Exploit Fixes: +

+
    +
  • None.
  • +
+

+ Security Fixes: +

+
    +
  • FLL: Console parameter single short values array is too small.
  • +
  • Controller: Remove the simulate feature that actually executes a script.
  • +
  • Controller: Incorrect sizeof() used in process pointers.
  • +
  • Controller: Wrong sizeof() type used in allocation functions.
  • +
  • FSS Read programs: Missing range checks on comment processing.
  • +
+

+ Features: +

+
    +
  • FLL: Add "Magic Bit" to the FSS-000F (Simple Packet) format.
  • +
+

+ Bug Fixes: +

+
    +
  • FLL: Enable missing support for grave (backtick) is IKI.
  • +
  • FLL: The fl_directory_create() needs to also handle F_file_found_not.
  • +
  • Controller: Stand alone build doesn't compile due to incorrect _di_f_thread_mutex_lock_timed_ config.h setting.
  • +
  • Controller: Incorrect length on string CONTROLLER_rule_print_control_groups_prepare_s.
  • +
  • Controller: Double creation of mutex alert lock.
  • +
  • Controller: Parameter type is f_number_unsigned_t and not uint8_t.
  • +
  • Controller: Incorrectly adding an extra '/' to the file name.
  • +
  • Controller: Incorrect thread unlock in controller_rule_process().
  • +
  • Controller: Improve error message regarding file not found..., found.
  • +
  • Controller: Don't assign enabled variable on lock failure to avoid potential race condition.
  • +
  • Controller: Error printing function has wrong locking.
  • +
  • Controller: Replace f_signal_mask() with f_thread_signal_mask().
  • +
  • Controller: New line is not being printed because sequence is missing.
  • +
  • Controller: Incorrect error message describing wrong value number.
  • +
  • Controller: Simulation is using error output rather than normal output in one case.
  • +
  • Controller: The $ should instead be a % in the fl_print_format() call.
  • +
  • Controller: Add missing 'extern' to controller_entry_settings_read_map().
  • +
  • Controller: The help code is being used instead of the light code
  • +
  • Fake: Add stage setting to standards to prevent build state file conflicts.
  • +
  • Fake: The build_name and version numbers should not support forward or backward slashes.
  • +
+

+ Refactors: +

+
    +
  • None.
  • +
+

+ Regressions: +

+
    +
  • None.
  • +
+

+ Updates: +

+
    +
  • FLL: Back port runtime tests for FSS Read programs.
  • +
  • FLL: Apply the not operator logic to avoid needing to literally specify it.
  • +
  • FLL: Greatly reduce memory consumption by implementing simple low allocation step.
  • +
  • FLL: Reduce memory usage by fl_fss_basic_content_read() in some circumstances.
  • +
  • FLL: Optimize away the isdigit(), isalpha(), isalnum(), and isxdigit().
  • +
  • FLL: Yet another file with a copyright year that needs to be updated.
  • +
  • FLL: Specifications to use grave as the common term for backtick.
  • +
  • FLL: The f_iki test needs to be updated following the version update.
  • +
  • Controller: Add additional protection around assignment of global.thread.enabled during Controller exit process.
  • +
  • Controller: Use copy of flag to avoid possible race conditions with controller_thread_is_enabled().
  • +
  • Controller: Provide fallback should the locks on exit fail to catch and update function using pointer.
  • +
  • Controller: Rewrite timing logic in controller.
  • +
  • Controller: Reset cache in some cases and do so after error messages.
  • +
  • Controller: Add missing extern for prototype of controller_unlock_print_flush().
  • +
+

+ Check out the project on the FLL release page. +

+

+ The project is built like a tool chest. + Individuals who are unfamiliar with the project should have an easier time trying out the pre-packaged monolithic sources. + These programs, by default, are designed to build against a library built using the monolithic source tree. +

+

+ The stand alone sources for the several programs can be found pre-packaged at Sourceforge. +

+

+ Kevin Day +

+