Fix #808, length-limited string length checks #810
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Describe the contribution
Create a wrapper around
memchr()
that mimics the non-C99 functionstrnlen()
which is defined in POSIX-2008.Use this instead of
strlen()
whenever the string being checked either originates in or will be copied into a fixed-length array buffer.Fixes #808
Testing performed
Build and sanity check CFE
Run all unit tests on both native and RTEMS
Expected behavior changes
No behavior changes except if a bug causes strings to be unterminated.
System(s) tested on
Ubuntu 20.04 (native)
RTEMS 4.11.3 (qemu)
Additional context
Worth noting that in most cases this was testing the length of a string in the internal OSAL table entry, which was already length-checked when created. So this check is somewhat redundant, the only way this could catch something is if there is memory corruption of some sort.
Contributor Info - All information REQUIRED for consideration of pull request
Joseph Hickey, Vantage Systems, Inc.