Fix convert_case(), introduced in 5c40364dd6.

Jeff Davis <jdavis@postgresql.org>

Commit: 503c0ad976f5e4ada2d1b47ae05aa7133351b645
Author: Jeff Davis <jdavis@postgresql.org>
Date: 2024-03-24T23:28:34Z
Releases: 17.0
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

Files

PathChange+/−
src/common/unicode_case.c modified +3 −3
src/common/unicode/case_test.c modified +98 −3

Discussion