]> Kevux Git Server - fll/commit
Bugfix: Partial string functions are incorrect.
authorKevin Day <thekevinday@gmail.com>
Sun, 27 Mar 2022 22:22:18 +0000 (17:22 -0500)
committerKevin Day <thekevinday@gmail.com>
Sun, 27 Mar 2022 22:22:18 +0000 (17:22 -0500)
commit1b141ac7549e5e5fd9ece66934915aedfd248abf
treecea5dc61a5f942f13e908d9f54b23e3326bfaf84
parent169148e164bfe36eeb92dfe56043faeb3ed8712c
Bugfix: Partial string functions are incorrect.

The tests exposed these problems.

The *_assure() functions are operating as if they are *_assure_nulless().
Remove the NULL checks that should not be there and fix the documentation comments.

The *_assure() functions are not considering the following:
1) The case where range.stop is >= source.used.
2) The fact that range.stop is inclusive and should not be directly used in the same way that *.used is used.

In the case of (1), if the stop range result in it overflowing past the actual length, the previous code results in invalid reads.
In the case of (2), the stop.range needs to instead be stop.range + 1.
level_0/f_string/c/string/dynamic.c
level_0/f_string/c/string/dynamic.h