Fix convert_case(), introduced in 5c40364dd6.
authorJeff Davis <jdavis@postgresql.org>
Sun, 24 Mar 2024 23:28:34 +0000 (16:28 -0700)
committerJeff Davis <jdavis@postgresql.org>
Sun, 24 Mar 2024 23:28:34 +0000 (16:28 -0700)
commit503c0ad976f5e4ada2d1b47ae05aa7133351b645
tree6007ebf6039e714c8343e0d260e4caa4b9520a61
parent3330a8d1b792375ae3f7dffb7eb0a45c907cbc72
Fix convert_case(), introduced in 5c40364dd6.

Check source length before checking for NUL terminator to avoid
reading one byte past the string end. Also fix unreachable bug when
caller does not expect NUL-terminated result.

Add unit test coverage of convert_case() in case_test.c, which makes
it easier to reproduce the valgrind failure.

Discussion: https://postgr.es/m/7a9fd36d-7a38-4dc2-e676-fc939491a95a@gmail.com
Reported-by: Alexander Lakhin
src/common/unicode/case_test.c
src/common/unicode_case.c