]> Kevux Git Server - fll/log
fll
6 months agoCleanup: Remove first/last backported printing code. 0.6.10
Kevin Day [Thu, 23 May 2024 03:18:56 +0000 (22:18 -0500)]
Cleanup: Remove first/last backported printing code.

The first/last code was backported in the past to make the scripts more forward-compatible.

I have decided to remove the first/last printing feature after significant testing and review.
The 0.7 development and later no longer has the first/last and so the backported code is no longer needed.

6 months agoBugfix: A lone quote inside quotes should not be escaped for FSS Basic and Extended.
Kevin Day [Thu, 23 May 2024 01:02:51 +0000 (20:02 -0500)]
Bugfix: A lone quote inside quotes should not be escaped for FSS Basic and Extended.

The command and results:
  # fss_extended_write -oc "'" '"' -oc '"' "'" -oc ' `' "\` " -oc "'" "'" | fss_extended_read -oc
  ' \"
  \" '
  ` `
  ' '

Is incorrect.
The correct results should be:
  # fss_extended_write -oc "'" '"' -oc '"' "'" -oc ' `' "\` " -oc "'" "'" | fss_extended_read -oc
  ' "
  " '
  ` `
  ' '

The problem is that in the case where the quote is already within a quoted string then it should not be escaped.
This only applies for the quote that would not be a valid closing quote.

6 months agoCleanup: Warning in unit f_utf tests under GCC 14 regarding type.
Kevin Day [Wed, 22 May 2024 02:38:56 +0000 (21:38 -0500)]
Cleanup: Warning in unit f_utf tests under GCC 14 regarding type.

The string comparison of an integer based value is correct.
Add an explicit cast to make this intent clear and to silence the warnings.

6 months agoUpdate: Man pages date in preparation for 0.6.10 release.
Kevin Day [Wed, 22 May 2024 00:34:44 +0000 (19:34 -0500)]
Update: Man pages date in preparation for 0.6.10 release.

6 months agoSecurity: Potential buffer overflow on 0 length array.
Kevin Day [Thu, 9 May 2024 01:50:50 +0000 (20:50 -0500)]
Security: Potential buffer overflow on 0 length array.

The length_name_item variable can potentially be zero.
The assignment of "name_item[length_name_item] = 0;" will then result in an assignment on a 0 length array.

This issue has been exposed via GCC's -fanalyzer.

6 months agoUpdate: Build files to have the correct build modes.
Kevin Day [Thu, 9 May 2024 01:07:54 +0000 (20:07 -0500)]
Update: Build files to have the correct build modes.

This adds missing build modes and makes sure the correct build modes for special builds (like the level builds) is correct.

6 months agoCleanup: Remove unused variables.
Kevin Day [Wed, 8 May 2024 23:16:09 +0000 (18:16 -0500)]
Cleanup: Remove unused variables.

7 months agoCleanup: Build settings files, use alphabetic ordering in more places.
Kevin Day [Sat, 20 Apr 2024 03:44:52 +0000 (22:44 -0500)]
Cleanup: Build settings files, use alphabetic ordering in more places.

Also add a missing space where "flags-test-O0" should instead be "flags-test -O0".

7 months agoUpdate: Add experimental ctags generation and ctags file.
Kevin Day [Mon, 15 Apr 2024 04:09:09 +0000 (23:09 -0500)]
Update: Add experimental ctags generation and ctags file.

This is used by projects like geany.
Unfortunately, the code is terrible and the documentation is like rotten eggs.
They seem to somehow put hard-coded paths in the ctag files which makes absolute no sense.
Then, the geany project provides completely different ctag files that do not have this path nonsense.
The geany documentation does not relate to their actual ctag files and the ones provided by their example.
The Universal-ctags documentation, while having a lot of words, is misleading, awkward, and doesn't even describe how to get rid of these paths nor how to omit the paths.
Following the parts that does seem to read as if it means removing the path does absolutely not this.
The geany does not even import this file properly, despite the command coming directly from geany's documentation.

Using geany to generate this produces better results but also includes a lot of other junk that is unwanted.
It also includes the file paths.

Having the file paths makes these generated ctag files completely useless as it requires some other person to have the exact same absolute file path structure.
For now, attempt to strip out the absolute path using a sed command.

7 months agoUpdate: The build scripts copyright to 2024.
Kevin Day [Mon, 15 Apr 2024 01:45:28 +0000 (20:45 -0500)]
Update: The build scripts copyright to 2024.

I overlooked these files when I updated the copyright year to 2024.

7 months agoCleanup: The OSLv1 license usage, fixing license reference.
Kevin Day [Wed, 10 Apr 2024 02:25:38 +0000 (21:25 -0500)]
Cleanup: The OSLv1 license usage, fixing license reference.

The license should read "open-standard-license-1.0-or-later" rather than "open-standard-license-1.0".
The license file itself is already labelled this.
These files simply were not correctly updated.

7 months agoUpdate: Add support for disable pthread mutex prioceiling for systems that do not...
Kevin Day [Mon, 8 Apr 2024 01:48:48 +0000 (20:48 -0500)]
Update: Add support for disable pthread mutex prioceiling for systems that do not support it.

The pthread mutex prioceiling and pthread mutex attr prioceiling functions are not supported on PostmarketOS for Pinephone.
The PostmarketOS for Pinephone is an A64 Arm system based on the Alpine Linux distribution.

7 months agoUpdate: Remove -D_FORTIFY_SOURCE because several systems automatically add this and...
Kevin Day [Sun, 7 Apr 2024 15:42:04 +0000 (10:42 -0500)]
Update: Remove -D_FORTIFY_SOURCE because several systems automatically add this and the screen is spammed with warnings.

7 months agoUpdate: Use bitwise operation check in f_thread_cancel_state_set().
Kevin Day [Thu, 4 Apr 2024 02:37:28 +0000 (21:37 -0500)]
Update: Use bitwise operation check in f_thread_cancel_state_set().

Also update the comment to make the context of "this" to be more clear.

7 months agoRegression: Typo in problematic handling of object files bug fix.
Kevin Day [Thu, 4 Apr 2024 02:35:36 +0000 (21:35 -0500)]
Regression: Typo in problematic handling of object files bug fix.

The commit 05e16beb0cce74f3117cc4a06440374a7d36a7a7 introduced a typo that resulted in the generated library path name being incorrect.

7 months agoCleanup: Incorrect example in IKI specification.
Kevin Day [Fri, 29 Mar 2024 21:41:32 +0000 (16:41 -0500)]
Cleanup: Incorrect example in IKI specification.

The example in the iki.txt specification has several errors.
Of particular note is the first code is incorrectly escaped and the terminating single quote discludes the example block.
The Objects and Contents example results is entirely incorrect.

There is no change to the specification rules itself and I do not technically need to change the version.
However, given how long it has been incorrect I have decided to up the version date to make the correct file easier to identify.

7 months agoBugfix: Problematic handling of object files.
Kevin Day [Fri, 29 Mar 2024 04:10:45 +0000 (23:10 -0500)]
Bugfix: Problematic handling of object files.

The object files are not being compiled correctly when performing a static build.
There may now be multiple object sources files which are now built individually.

The build object sources must be built without source code files.
The logic is relocated into a fake_build_library_static_object() function to build the object files.
These files are then included when static linking.
A new build stage is also added to accommodate this.

Building the objects should not include libraries linked.
Remove the logic that auto-adds the library linkage when building objects.

Break out the "path_sources" Object into multiple sub-parts:
  - "path_sources_headers".
  - "path_sources_library".
  - "path_sources_object".
  - "path_sources_program".
  - "path_sources_script".

Update the documentation and specification files accordingly.

Add missing version dates to the specifications.

Update the bootstrap.sh script with these changes.
Fix incidental problems discovered in the bootstrap.sh script:
  - Remove already compiled warning as it is not needed and is not exhaustive.
  - Improve handling of directory detection and simplify the relating code.
  - The built setting files are now being properly checked (a regression caused them to not be properly checked).

8 months agoBugfix: Incorrect memset type used in Featureless Make.
Kevin Day [Sat, 23 Mar 2024 03:46:18 +0000 (22:46 -0500)]
Bugfix: Incorrect memset type used in Featureless Make.

8 months agoUpdate: Add stand alone fss_basic_list_read, fss_basic_list_write, fss_extended_list_...
Kevin Day [Sun, 17 Mar 2024 23:21:34 +0000 (18:21 -0500)]
Update: Add stand alone fss_basic_list_read, fss_basic_list_write, fss_extended_list_read, and fss_extended_list_write.

I took the lazy approach and copied the fss_basic_read and fss_basic_write.
These projects will have most of the same dependencies with only a few changes.

This lazy approach means that I may have included unnecessary data.

8 months agoUpdate: FSS-000E specification, adding "salt" and "time" as suggested headers.
Kevin Day [Wed, 13 Mar 2024 02:07:57 +0000 (21:07 -0500)]
Update: FSS-000E specification, adding "salt" and "time" as suggested headers.

I intend to keep the recommended and now suggested headers to a bare minimum.
I have decided that "salt" and "time" should be common enough and important enough to add to this small list.

8 months agoCleaup: Inline comment regarding cast to uint8_t in f_memory functions.
Kevin Day [Mon, 11 Mar 2024 05:12:29 +0000 (00:12 -0500)]
Cleaup: Inline comment regarding cast to uint8_t in f_memory functions.

8 months agoRegression: Do not change version number in f_iki unit test for the example fake...
Kevin Day [Fri, 8 Mar 2024 04:36:23 +0000 (22:36 -0600)]
Regression: Do not change version number in f_iki unit test for the example fake file.

The string has a set length and so do not change that value.

8 months agoBugfix: FSS Extended Write is not properly quoting quotes.
Kevin Day [Wed, 6 Mar 2024 02:52:16 +0000 (20:52 -0600)]
Bugfix: FSS Extended Write is not properly quoting quotes.

When writing using a quote character that is not the selected quote to use when writing, these other quote character must still be quoted.
Take for example this:
  # fss_extended_write -oc "'" '"' -oc '"' "'" -oc ' `' "\` " -oc "'" "'"
  "'" "\""
  "\"" "'"
  "`" "` "
  "'" "'"

Quoting the quotes is necessary to ensure that the FSS Extended Read properly works.
Otherwise the [' '] would be read as an Object without Content when instead the code should be ["'" "'"] which would be read as an Object of ' and a Content of '.

8 months agoUpdate: Switch for..loop with memcpy() for character width copies.
Kevin Day [Wed, 6 Mar 2024 02:01:14 +0000 (20:01 -0600)]
Update: Switch for..loop with memcpy() for character width copies.

8 months agoUpdate: Next micro version (0.6.10).
Kevin Day [Mon, 4 Mar 2024 03:16:44 +0000 (21:16 -0600)]
Update: Next micro version (0.6.10).

8 months agoBugfix: FSS Extended Write is improperly associated Content with its respective Object. 0.6.9
Kevin Day [Sun, 3 Mar 2024 23:08:45 +0000 (17:08 -0600)]
Bugfix: FSS Extended Write is improperly associated Content with its respective Object.

The following is an example of the bad behavior:
  # fss_extended_write -oc A B -oc C D -oc E F
  A B D
  C F
  E

The expected behavior instead should be:
  # fss_extended_write -oc A B -oc C D -oc E F
  A B
  C D
  E F

The problem is that when "-oc" is used for the next set that object and content parameter have the same parameter index position.
The operator for testing for this should therefore be ">=" rather than ">".

8 months agoCleanup: Style in FSS Extended Write.
Kevin Day [Sun, 3 Mar 2024 23:07:12 +0000 (17:07 -0600)]
Cleanup: Style in FSS Extended Write.

The style changed over time and this code did not get updated.
There are probably more such places but I am not looking for it.
This just happened to be convenient.

8 months agoBugfix: If the first character has a width greater than one then F_utf_fragment is...
Kevin Day [Fri, 1 Mar 2024 05:03:54 +0000 (23:03 -0600)]
Bugfix: If the first character has a width greater than one then F_utf_fragment is incorrectly returned when using quotes.

A F_utf_fragment is incorrectly when writing a string that would use quotes and that first character has a width greater than one.

The code is incrementing the string by 1.
This should instead be incrementing by the character width.
The loop itself should increment by the character width as well.

This bug has been exposed by unit tests from the 0.7 development branch.

8 months agoCleanup: The OSLv1 license, fixing grammar and clarifying intent.
Kevin Day [Wed, 28 Feb 2024 02:34:14 +0000 (20:34 -0600)]
Cleanup: The OSLv1 license, fixing grammar and clarifying intent.

This does not change the license other than fixing grammar and making the intent more consistent and clear.

This also adds a day to the license data that represents that last time this license has been modified.
The version number is changed only when there is a functional or substantial change to the license.

I have noticed that in some places individuals decide the "includes" is a restrictive word.
It is not, especially given that it is literally an inclusive word.
This changes the wording from "includes" or "including" to something like "including but not limited to" avoid any of that non-sense.
The proper application of the English language would result in the "but not limited to" being redundant and pointless.
This specific language is added just in case somebody does not understand the English language when it comes to the word "including".

Try to be consistent and use "lawful" instead of "legal" (except in cases where both are mentioned).

Generally, referring to "lawful" here also includes "legal".
The "lawful" is chosen to represent actual law rather than the more questionable "legal"  terminology.

The wording of "access to use, implement, etc.." can be misinterpreted such that the "access to" is applied to implement (and etc..) such that it becomes "access to implement".
The actual intent and design is not simply around "access to implement".
Instead, it is around "to implement", period.
Clarify this by splitting out "access to use" into "to access", "to use", etc...

8 months agoCleanup: Minor changes to bootstrap-example.sh.
Kevin Day [Tue, 27 Feb 2024 03:25:17 +0000 (21:25 -0600)]
Cleanup: Minor changes to bootstrap-example.sh.

8 months agoUpdate: Add missing snippet from OSLv1 license.
Kevin Day [Mon, 26 Feb 2024 23:33:00 +0000 (17:33 -0600)]
Update: Add missing snippet from OSLv1 license.

This piece of the license appears to have been lost somehow and is now added back.

8 months agoBugfix: Incorrect mode display when featureless make is building settings.
Kevin Day [Sun, 25 Feb 2024 17:37:37 +0000 (11:37 -0600)]
Bugfix: Incorrect mode display when featureless make is building settings.

The modes being displayed are the default modes.
This is incorrect.
The modes being selected should be displayed.

This is a bug only with the messages being printed and does not affect the actual build process.
The build process appears to be operating correctly.

8 months agoUpdate: Disable -fstrict-flex-arrays=3 flag because it doesn't work on GCC 11.
Kevin Day [Sun, 25 Feb 2024 16:27:18 +0000 (10:27 -0600)]
Update: Disable -fstrict-flex-arrays=3 flag because it doesn't work on GCC 11.

I just did tests on GCC 11, which is not too old.
The -fstrict-flex-arrays flag does not work there.
For now, just disable the flag by setting it to the non-existent gcc_13 mode.
The mode can be added to the mode list and enabled if so desired.
I may make version specific modes available in the future (or not) but that will require some planning.
The fakefile should be designed to test the GCC version, but I would rather avoid such logic by design.
Let the distributor or the system administrator handle such decisions.

8 months agoUpdate: Make the Open Standard License 1.0 formal.
Kevin Day [Sat, 24 Feb 2024 23:42:26 +0000 (17:42 -0600)]
Update: Make the Open Standard License 1.0 formal.

I don't see any opportunities to get this reviewed and finalized and so I am formalizing it as-is.
I can always improve it if the opportunity arrives and increment the version number.

There are no changes to the license other than remove the "informal" and "draft" parts.

8 months agoSecurity: Conversion is not handling NULL case when base unit is an unsupported type.
Kevin Day [Sat, 24 Feb 2024 21:17:46 +0000 (15:17 -0600)]
Security: Conversion is not handling NULL case when base unit is an unsupported type.

8 months agoFeature: Add -a/--analyze to test.sh script.
Kevin Day [Sat, 24 Feb 2024 21:10:34 +0000 (15:10 -0600)]
Feature: Add -a/--analyze to test.sh script.

Adding the -a/--analyze parameter to the test.sh script should allow for easier testing with the analyze option.
The idea here is to make it easier to perform these checks and to improve the quality of the releases.

This does not relate to the API or ABI and so adding this feature is not a problem for the 0.6.x stable release series.

8 months agoUpdate: Documentation man pages.
Kevin Day [Sat, 24 Feb 2024 07:06:16 +0000 (01:06 -0600)]
Update: Documentation man pages.

This repeats the process outlined in commit 63be746d22d66870ae89f9575c82db7d0b784e32.

The following changes are made:
- TAB_SIZE = 2
- PROJECT_NUMBER = 0.6.9

Setting "JAVADOC_AUTOBRIEF = yes" may be something worth looking into but for now the default of "JAVADOC_AUTOBRIEF = no" is being used.

It is unclear whether or not the "@see" is being processed without looking closes (and given the size of this, I did not do that).
I decided to leave the SEE ALSO sections that are generated, regardless of their state.

I noticed and removed man page documentation comments that somehow ended up in unit test data files.

The program function documentation is also generated and provided now.
This was not done so in the past.

Performing the process of generating and then reviewing the generated man pages exposed a number of problems that I fixed in commits prior to this commit.
Most of the changes are code clean ups but a security concern regarding handling a NULL pointer in a parameter was caught and identified during this process.

The commit referenced above mentioned the doxy2man but never documented the process.
The doxy2man used can be found at https://github.com/gsauthof/doxy2man.git .
The commit hash used for the generation is 5ce113f4d2a3fc6712f8eb8606a6b0899dc6f8d1 (dated Wed Aug 31 09:06:46 2016 +0200).

The doxy2man tool was performed against every XML file generated from doxywizard via a Bash for loop over each XML file.

I may make a copy of this doxy2man tool to help preserve this useful tool.

This is a massive set of changes (almost 1600 man pages) and so my review is rather lax and generalized.

8 months agoCleanup: Documentation comments for fll_print_format_convert().
Kevin Day [Sat, 24 Feb 2024 06:23:49 +0000 (00:23 -0600)]
Cleanup: Documentation comments for fll_print_format_convert().

8 months agoSecurity: The fl_print_format_convert() is missing the check on the pointer and updat...
Kevin Day [Sat, 24 Feb 2024 05:35:47 +0000 (23:35 -0600)]
Security: The fl_print_format_convert() is missing the check on the pointer and update the related documentation comments.

The documentation comments have the status return values in the wrong spot.
Relocate them to below the variable.

This caused me to notice that this function is missing the standard NULL check on a pointer parameter.
The 0.7 versions make this parameter optional.
Do the same thing as the 0.7 versions and make this optional.

9 months agoCleanup: Replace '->' with '.' in documentation comment.
Kevin Day [Fri, 23 Feb 2024 06:18:51 +0000 (00:18 -0600)]
Cleanup: Replace '->' with '.' in documentation comment.

There should be no pointer syntax used in documentation comments to keep the documentation agnostic to pointer/non-pointer.

9 months agoCleanup: Remove out of place documentation comment.
Kevin Day [Fri, 23 Feb 2024 06:05:06 +0000 (00:05 -0600)]
Cleanup: Remove out of place documentation comment.

9 months agoCleanup: Remove out of place semi-colon from documentation comments.
Kevin Day [Fri, 23 Feb 2024 03:37:54 +0000 (21:37 -0600)]
Cleanup: Remove out of place semi-colon from documentation comments.

9 months agoCleanup: Fix wording in documentation comment for 'compression'.
Kevin Day [Fri, 23 Feb 2024 01:57:10 +0000 (19:57 -0600)]
Cleanup: Fix wording in documentation comment for 'compression'.

9 months agoCleanup: Fix grammar in documentation comment, replacing process with processes.
Kevin Day [Thu, 22 Feb 2024 05:05:07 +0000 (23:05 -0600)]
Cleanup: Fix grammar in documentation comment, replacing process with processes.

9 months agoCleanup: Use F_true and F_False instead of TRUE and FALSE in the documentation comments.
Kevin Day [Thu, 22 Feb 2024 03:50:12 +0000 (21:50 -0600)]
Cleanup: Use F_true and F_False instead of TRUE and FALSE in the documentation comments.

9 months agoCleanup: Function documentation comments, removing or fixing invalid comments.
Kevin Day [Wed, 21 Feb 2024 03:37:38 +0000 (21:37 -0600)]
Cleanup: Function documentation comments, removing or fixing invalid comments.

The Doxygen wizard reported warnings that exposed these problems.

9 months agoUpdate: Back port the ability to explicitly skip a program in the bootstrap example...
Kevin Day [Wed, 21 Feb 2024 02:02:38 +0000 (20:02 -0600)]
Update: Back port the ability to explicitly skip a program in the bootstrap example script.

The controller program is not yet migrated to compile under 0.7.x.
This adds the ability to the bootstrap example script to allow for simply skipping packages.

9 months agoUpdate: Back port settings configurations, such as gcc and flags.
Kevin Day [Tue, 20 Feb 2024 13:25:26 +0000 (07:25 -0600)]
Update: Back port settings configurations, such as gcc and flags.

Back port the gcc mode.
Back port the -Wno-missing-braces flag.

Make sure the flags are used more consistently within the build settings.

9 months agoUpdate: Backport fixes for bootstrap-example.sh, package.sh, and test.sh scripts.
Kevin Day [Tue, 20 Feb 2024 06:17:59 +0000 (00:17 -0600)]
Update: Backport fixes for bootstrap-example.sh, package.sh, and test.sh scripts.

Add support for "-m gcc".
- A follow up backport commit for every build settings file and fakefile is needed after this commit.

Fix issue with test_operate_build_project not getting the test_thread_individual variable.

See commits:
a850c4fc237e346cecc70bf3ed87b958299ceca2
ea1c3d46fecaa3e267bb9900e509a43026a85648
ba083b0d08191cb03f3531ef64ae82c881318f04

9 months agoUpdate: Backport improved return code failure reporting to firewall from 0.7 development.
Kevin Day [Sun, 18 Feb 2024 04:11:20 +0000 (22:11 -0600)]
Update: Backport improved return code failure reporting to firewall from 0.7 development.

The return code may be returned as non-zero for error returned by iptables.
This error is now being reported.
This error does not prevent the firewall from continuing.

9 months agoBugfix: De-allocation call is missing in firewall program when "firewall stop" is...
Kevin Day [Sun, 18 Feb 2024 03:48:32 +0000 (21:48 -0600)]
Bugfix: De-allocation call is missing in firewall program when "firewall stop" is used.

Fix a spot where the de-allocation is not performed.

9 months agoBugfix: The debug mode is not working in firewall.
Kevin Day [Sat, 17 Feb 2024 16:26:54 +0000 (10:26 -0600)]
Bugfix: The debug mode is not working in firewall.

The debug verbositity mode is at the 5th position in the array and is not being used because the used length is set to 4 instead of 5.

9 months agoBugfix: Firewall length check from range is not calculating 0 correctly.
Kevin Day [Thu, 15 Feb 2024 04:47:49 +0000 (22:47 -0600)]
Bugfix: Firewall length check from range is not calculating 0 correctly.

When the range.start is greater than the range.stop, then the length is 0.
Rather than checking for this, this just subtracts range.start from range.stop then adds 1.
This results in the case of say (0 - 1) + 1, which may not be 0 due to overflow behaviors.
Play it safe and explicitly test for this rather than hoping that the overflow operates ideally.

9 months agoCleanup: Replace two condition checks with one.
Kevin Day [Thu, 15 Feb 2024 03:05:43 +0000 (21:05 -0600)]
Cleanup: Replace two condition checks with one.

If less than or equal to zero or greater than zero is the condition, then the simpler condition would be to just check not equal to one.

9 months agoBugfix: Firewall program if condition is setting an error flag rather than checking...
Kevin Day [Tue, 13 Feb 2024 00:56:47 +0000 (18:56 -0600)]
Bugfix: Firewall program if condition is setting an error flag rather than checking the value.

9 months agoBugfix: Firewall program is not printing error when fll_fss_extended_read() fails.
Kevin Day [Sun, 11 Feb 2024 03:32:10 +0000 (21:32 -0600)]
Bugfix: Firewall program is not printing error when fll_fss_extended_read() fails.

9 months agoBugfix: Error message is saying "lock" when it should say "stop".
Kevin Day [Sun, 11 Feb 2024 03:04:44 +0000 (21:04 -0600)]
Bugfix: Error message is saying "lock" when it should say "stop".

9 months agoUpdate: Make sure stand alone builds have consistent buid mode settings.
Kevin Day [Fri, 2 Feb 2024 04:49:08 +0000 (22:49 -0600)]
Update: Make sure stand alone builds have consistent buid mode settings.

Make sure "-pthread" is present via the "thread" mode.

Add any missing flag modes such as "coverage" and "test".

9 months agoUpdate: Add hopefully more secure compiler flags by default.
Kevin Day [Thu, 1 Feb 2024 05:37:12 +0000 (23:37 -0600)]
Update: Add hopefully more secure compiler flags by default.

Use the "-Wl" for specifying the linker flags.
- Make sure "now", "relro", and "nodlopen" are set.

Add FORTIFY_SOURCE set to 3.

Add stack-clash-protection and strict-flex-arrays set to 3.

This project is designed around NULL checks.
- Make sure the no-delete-null-pointer-checks flag is set to prevent the compiler from removing these security/integrity checks.

Use stack-protector-strong rather than stack-protector for test flags.
- Future versions may enable stack-protector-strong by default for regular compiling.

9 months agoUpdate: Make the -m thread option in the example bootstrap script more easily customi...
Kevin Day [Thu, 1 Feb 2024 05:23:37 +0000 (23:23 -0600)]
Update: Make the -m thread option in the example bootstrap script more easily customizable.

9 months agoBugfix: FSS Basic List and FSS Extended List print comment at the start of the Content.
Kevin Day [Wed, 31 Jan 2024 05:41:52 +0000 (23:41 -0600)]
Bugfix: FSS Basic List and FSS Extended List print comment at the start of the Content.

When the Content exists at the start of the Content, the comment character ('#') is printed when it should not be printed.

This is a bug where the code initializes the newline_last at the range.start.
The code logic then always expects the newline_last to represent an actual new line.
This is not necessarily the case for when newline_last is pointing to the initial range.start position.

Add a check when processing a comment to ensure that the newline_last is in fact a new line.

9 months agoCleanup: Bad documentation comment syntax in fll_fss functions.
Kevin Day [Sun, 28 Jan 2024 06:45:54 +0000 (00:45 -0600)]
Cleanup: Bad documentation comment syntax in fll_fss functions.

9 months agoBugfix: FSS Extended read fails to handle non-terminated quote as per specification.
Kevin Day [Thu, 25 Jan 2024 04:50:30 +0000 (22:50 -0600)]
Bugfix: FSS Extended read fails to handle non-terminated quote as per specification.

This is a follow up to the problems discovered while writing unit tests (from the 0.7 development branch) and referenced in this commit: 70cbbe34121dc5679961df711e70724f13104489.

Given the line:
  a " b c d.

The following Content should now be returned:
  [0] = "
  [1] = b
  [2] = c
  [3] = d.

This adds a new FSS state flag 'f_fss_state_quote_not_e' to give the caller the ability to manually designate that the quotes are being disabled.
Currently only the FSS Extended utilizes this flag.

Refactor the private function private_fl_fss_basic_read() into private_fl_fss_basic_or_extended_read() to make it more explicitly clear that it provides functionality fo both FSS Basic and FSS Extended.

This changes to the code such that when an unterminated quote is detected then the calling function will set the disable quote flag and then call the function again.

9 months agoBugfix: Incorrect stop position is calculated when FSS content ends at the start...
Kevin Day [Wed, 24 Jan 2024 05:53:34 +0000 (23:53 -0600)]
Bugfix: Incorrect stop position is calculated when FSS content ends at the start position on FSS read operations.

When the start position is say, 0, and the determined stop position ends up being 0, then an incorrect stop range is calculated.
This happens because the stop position is subtracting one from the current position.

Add checks to ensure that the stop position is never subtracted beyond the initial start position.

The initial start position is saved at the beginning of each affected FSS read function.

This now potentially returns a start range before the stop range.
The FSS read programs should also need to be updated following this commit to handle these cases.

10 months agoCleanup: Use correct project name in fll_path documentation comments.
Kevin Day [Fri, 19 Jan 2024 03:12:37 +0000 (21:12 -0600)]
Cleanup: Use correct project name in fll_path documentation comments.

10 months agoCleanup: Invalid environment define "CMOCKA_TEST_ABORT" in testfiles.
Kevin Day [Fri, 19 Jan 2024 03:07:32 +0000 (21:07 -0600)]
Cleanup: Invalid environment define "CMOCKA_TEST_ABORT" in testfiles.

This invalid configuration doesn't break anything unless someone uncomments it.
Then, the expected functionality does not happen.
The fix is easy, just add "define " at the start of that line to the right of the comment character.

10 months agoBugfix: Functions private_fl_fss_basic_read() and private_fl_fss_basic_write() are...
Kevin Day [Thu, 18 Jan 2024 02:47:23 +0000 (20:47 -0600)]
Bugfix: Functions private_fl_fss_basic_read() and private_fl_fss_basic_write() are missing "const".

The function implementations for private_fl_fss_basic_read() and private_fl_fss_basic_write() are missing the "const" type attribute in some parameters.
The declaration of these has the "const" type attribute as expected.

This inconsistency is considered a bug.

10 months agoRefactor: The backtick into the grave, for the specifications.
Kevin Day [Tue, 16 Jan 2024 15:55:47 +0000 (09:55 -0600)]
Refactor: The backtick into the grave, for the specifications.

This is a terminology change in the specifications and the code (both API or ABI) does not need to be changed.
Changing the code would be ideal, but this would break API and likely ABI.

The 0.6 version series will continue to use the word "backtick" in the code itself for this reason.

10 months agoUpdate: Add additional parenthesis around status in F_status check macros.
Kevin Day [Sun, 14 Jan 2024 00:01:29 +0000 (18:01 -0600)]
Update: Add additional parenthesis around status in F_status check macros.

This is an extra safety check just in case.

10 months agoUpdate: Optimize bitwise logic regarding removing bits.
Kevin Day [Wed, 3 Jan 2024 23:22:17 +0000 (17:22 -0600)]
Update: Optimize bitwise logic regarding removing bits.

I intended to eventually do this and I finally got around to it.
Change the logic to use "x &= ~y" rather than "x -= x & y" or "if (x | y) x -= y".

In the case of "x -= x & y", the resulting object code is identical in my tests.
However, the code is simpler to write with the "x &= ~y".

The "if (x | y) x -= y" results in a lot more commands in the object.

10 months agoUpdate: The FSS-000E specification needs to say "one required object" and not "two...
Kevin Day [Mon, 1 Jan 2024 16:38:12 +0000 (10:38 -0600)]
Update: The FSS-000E specification needs to say "one required object" and not "two required objects".

This is an oversight from the commit fdc1d99415cd72519c9c3ac36f5e8b69428ea0f2.

10 months agoUpdate: Next micro version (0.6.9).
Kevin Day [Mon, 1 Jan 2024 16:36:00 +0000 (10:36 -0600)]
Update: Next micro version (0.6.9).

10 months agoCleanup: Fix incorrect endif disable macro comment. 0.6.8
Kevin Day [Sun, 31 Dec 2023 03:24:12 +0000 (21:24 -0600)]
Cleanup: Fix incorrect endif disable macro comment.

10 months agoUpdate: Explicitly cast UTF conversion to/from to a uint32_t.
Kevin Day [Sun, 31 Dec 2023 02:33:33 +0000 (20:33 -0600)]
Update: Explicitly cast UTF conversion to/from to a uint32_t.

If the type is changed or the defines are used with different types, then the shift operators may become problematic.
Prevent this potential problem from happening through explicit casts to uint32_t.

11 months agoBugfix: Fix incorrect wording regarding negative times and add some clarification...
Kevin Day [Sat, 16 Dec 2023 01:37:50 +0000 (19:37 -0600)]
Bugfix: Fix incorrect wording regarding negative times and add some clarification regarding defaults.

The time specification is mistakenly using the word "after" when it should be the word "before" for the example "2022:-5".

I decided that I needed to better clarify what I meant by default and not make it sound so strict.
Add additional language to better communicate that when the year is not specified, it is not specified.
There is no required interpretation and a default is simply a recommendation.

I am going to start trying to establish a habit of using UTC for my timestamps.
My local time zone, the date of the specification is still the 15 of December, 2023.
However, to stick with UTC for records purpose I need to the start doing this now.
There may be occasional inconsistencies for a while until I establish the habit of using UTC.

11 months agoUpdate: The fss-000e (Payload) specification should allow for the "payload" Section...
Kevin Day [Fri, 8 Dec 2023 02:29:47 +0000 (20:29 -0600)]
Update: The fss-000e (Payload) specification should allow for the "payload" Section to be optional.

In cases where packets that are being sent only need to send the "header", then it makes sense to not have a "payload" Section.
This should help reduce network traffic by avoiding the extra "payload:\n" characters when the payload Section is to be ignored.

12 months agoUpdate: Specifications for Payload and Simple Packet.
Kevin Day [Wed, 15 Nov 2023 00:00:37 +0000 (18:00 -0600)]
Update: Specifications for Payload and Simple Packet.

Add "type" as a recommended Object in the header section for the Payload.

Change the size units being used in Simple Packet.
The numbers used in some areas are completely wrong 2^4 is not 32-bits.
Instead use the word "bytes" or "bits" and update the units.
The Payload Block Structure uses "bytes" rather than bits as that is the general focus of that section.
All others use "bits".

Additional changes from previous updates in the 0.7 are added here as well (version 2023/10/04).

14 months agoUpdate: Use size_t and perform explicit casts in Control program.
Kevin Day [Sun, 10 Sep 2023 22:24:20 +0000 (17:24 -0500)]
Update: Use size_t and perform explicit casts in Control program.

The f_socket_read() function expects a size_t type but is passed f_array_length_t.
By default these should be the same thing.

Change "length" to a size_t and add appropriate casts.

This is not a very important change because the Control program is incomplete.

14 months agoUpdate: Next micro version (0.6.8).
Kevin Day [Thu, 7 Sep 2023 05:25:58 +0000 (00:25 -0500)]
Update: Next micro version (0.6.8).

14 months agoUpdate: Next micro version (0.6.7), for stand alone builds. 0.6.7
Kevin Day [Thu, 7 Sep 2023 02:37:03 +0000 (21:37 -0500)]
Update: Next micro version (0.6.7), for stand alone builds.

I missed these in the previous commit bumping the version number up.

14 months agoCleanup: Add comment in fll_execute_arguments_add_parameter_set() help to prevent...
Kevin Day [Thu, 7 Sep 2023 02:27:25 +0000 (21:27 -0500)]
Cleanup: Add comment in fll_execute_arguments_add_parameter_set() help to prevent possible misunderstandings in the future.

This is a back port of this comment from the 0.7 branch.

14 months agoCleanup: Relocate assignment in the if condition to avoid warning.
Kevin Day [Thu, 7 Sep 2023 02:05:32 +0000 (21:05 -0500)]
Cleanup: Relocate assignment in the if condition to avoid warning.

I think I was experiment with this style anyway.

Just move the assignment outside of the if condition.

14 months agoBugfix: Problems exposed by clang-13.
Kevin Day [Wed, 6 Sep 2023 05:45:46 +0000 (00:45 -0500)]
Bugfix: Problems exposed by clang-13.

The Vedic Extensions Unicode checks are out of order.

Remove unused "last" variable from private_fl_utf_file_write_until().

Add missing "return" keyword in Featureless Make.

14 months agoBugfix: Mistakes in the FSS-000f Simple Packet specification.
Kevin Day [Sat, 2 Sep 2023 14:27:31 +0000 (09:27 -0500)]
Bugfix: Mistakes in the FSS-000f Simple Packet specification.

The "Size Block Structure" section has the wrong example.
Fix the example to display the Size Block structure, which is a 32-bit digit.

Change the "Control Block Structure" section to use "size" annotations rather than bit examples.

14 months agoSecurity: Invalid allocation size for fll_execute_arguments_add_parameter_set().
Kevin Day [Mon, 28 Aug 2023 03:51:19 +0000 (22:51 -0500)]
Security: Invalid allocation size for fll_execute_arguments_add_parameter_set().

The size should be size * 2 because of the parameter and value are added.

14 months agoFeature: Add -U/--under parameter to Featureless Make.
Kevin Day [Mon, 28 Aug 2023 02:56:01 +0000 (21:56 -0500)]
Feature: Add -U/--under parameter to Featureless Make.

I discovered that the data build directory customization is incomplete while working on the Kevux Tools TacocaT program.

A new parameter to specify a sub-directory within the data directory, called "under", represented by -U and --under is now added.
This provides the ability to change the "build" part of the "data/build" directory.
This can even be an empty string.

The fakefile documentation and specification is updated because this parameter must now be reserved and exposed to IKI expansion.
I have not yet done a thorough test of this feature and I will hopefully do this before the next release.
I have performed a basic test and I can now compile the TacocaT program easily using this parameter.

14 months agoRegression: Incorrect dependencies breaking some builds, specifically the stand alone...
Kevin Day [Sun, 27 Aug 2023 21:17:44 +0000 (16:17 -0500)]
Regression: Incorrect dependencies breaking some builds, specifically the stand alone builds.

I'm not sure when this happened but at a some point I cleaned up some of the dependencies but failed to perform the appropraite checks with the stand alone builds.
There are stale files, dependencies, and references that are causing the stand alone builds to fail.

Remove or add the correct dependencies as appropriate.

15 months agoBugfix: Incorrect function name in error message.
Kevin Day [Wed, 23 Aug 2023 04:15:08 +0000 (23:15 -0500)]
Bugfix: Incorrect function name in error message.

15 months agoCleanup: Remove duplicate headers present in the wrong file.
Kevin Day [Sat, 12 Aug 2023 21:48:26 +0000 (16:48 -0500)]
Cleanup: Remove duplicate headers present in the wrong file.

This is likely a result of an incomplete relocation of these functions to the private file.
They are not needed and removing them neither breaks API nor ABI.

15 months agoCleanup: Use '{ 0 }' as initializer for f_thread_set_t_initialize.
Kevin Day [Fri, 11 Aug 2023 01:23:18 +0000 (20:23 -0500)]
Cleanup: Use '{ 0 }' as initializer for f_thread_set_t_initialize.

The f_thread_attribute_t_initialize works using '{ 0 }' as the initializer.
For whatever reason, the compilers do not like explicit initializers with the auto NULL ones like '{ 0 }'.
Switching to '{ 0 }' makes compilers happy and making compilers happy is often a good thing.

15 months agoCleanup: Change structure of fll_execute_program() checks.
Kevin Day [Thu, 10 Aug 2023 04:31:26 +0000 (23:31 -0500)]
Cleanup: Change structure of fll_execute_program() checks.

This is a follow up to the commit 1b43ceefc20836137ed95e19d275dda44d8a678d.

The previous commit is passing NULL to strrchr().
This should be fine, but does produce a warning.

Clean up the code and play it safe by changing the design to only call strrchr() when the value passed would be non-NULL.

15 months agoSecurity: Add additional checks against the parameters in fll_execute_program().
Kevin Day [Tue, 8 Aug 2023 01:19:00 +0000 (20:19 -0500)]
Security: Add additional checks against the parameters in fll_execute_program().

15 months agoCleanup: Minor code optimizations in fll_program.
Kevin Day [Thu, 3 Aug 2023 01:29:07 +0000 (20:29 -0500)]
Cleanup: Minor code optimizations in fll_program.

The context sets are being set to f_color_set_empty_s.
Have each set be assigned the return value of the other.

Change the status return structure for simple return conditions at the end of the functions.

15 months agoBugfix: Add missing parameter checking to fll_program_* functions, add "const" to...
Kevin Day [Thu, 3 Aug 2023 01:22:11 +0000 (20:22 -0500)]
Bugfix: Add missing parameter checking to fll_program_* functions, add "const" to parameter pointers, and add missing documentation comment for parameter.

15 months agoBugfix: Byte Dump program binary mode is printing wrong number of padding.
Kevin Day [Thu, 27 Jul 2023 02:37:44 +0000 (21:37 -0500)]
Bugfix: Byte Dump program binary mode is printing wrong number of padding.

15 months agoCleanup: Message in byte dump documenation comment.
Kevin Day [Wed, 26 Jul 2023 04:20:28 +0000 (23:20 -0500)]
Cleanup: Message in byte dump documenation comment.

16 months agoCleanup: Fix documentation comments to correctly reference project UTF.
Kevin Day [Sun, 23 Jul 2023 19:51:25 +0000 (14:51 -0500)]
Cleanup: Fix documentation comments to correctly reference project UTF.

16 months agoSecurity: The f_iki allocation functions are calling f_memory_destroy() and f_memory_...
Kevin Day [Sat, 22 Jul 2023 15:33:12 +0000 (10:33 -0500)]
Security: The f_iki allocation functions are calling f_memory_destroy() and f_memory_delete() when they should not, causing memory leak.

The private_f_iki_datas_adjust() should be called instead of f_memory_destroy().
The private_f_iki_datas_resize() should be called instead of f_memory_delete().

This is because the iki_datass needs the individual sets within to be deallocated.
De-allocating at the top level via the f_memory_destroy() and f_memory_delete() is very probably a memory leak.

16 months agoCleanup: Remove useless NULL assignment to pointer.
Kevin Day [Sat, 22 Jul 2023 01:09:23 +0000 (20:09 -0500)]
Cleanup: Remove useless NULL assignment to pointer.

This doesn't change the value of the pointer, so it should be a useless operation.

16 months agoBugfix: Incorrect sizeof() values for numerous type array functions.
Kevin Day [Sat, 22 Jul 2023 00:59:18 +0000 (19:59 -0500)]
Bugfix: Incorrect sizeof() values for numerous type array  functions.

The wrong sizeof types are being used.
This is likely a copy and paste error.