mirror of
https://git.postgresql.org/git/postgresql.git
synced 2024-10-03 05:06:50 +02:00
Fix memory leak with lower, upper and initcap with ICU-provided collations
The leak happens in str_tolower, str_toupper and str_initcap, which are
used in several places including their equivalent SQL-level functions,
and can only be triggered when using an ICU-provided collation when
converting the input string.
b615920
fixed a similar leak. Backpatch down 10 where ICU collations
have been introduced.
Author: Konstantin Knizhnik
Discussion: https://postgr.es/m/94c0ad0a-cbc2-e4a3-7829-2bdeaf9146db@postgrespro.ru
Backpatch-through: 10
This commit is contained in:
parent
aad0926ebb
commit
5380719f93
@ -1586,6 +1586,7 @@ str_tolower(const char *buff, size_t nbytes, Oid collid)
|
||||
&buff_conv, buff_uchar, len_uchar);
|
||||
icu_from_uchar(&result, buff_conv, len_conv);
|
||||
pfree(buff_uchar);
|
||||
pfree(buff_conv);
|
||||
}
|
||||
else
|
||||
#endif
|
||||
@ -1709,6 +1710,7 @@ str_toupper(const char *buff, size_t nbytes, Oid collid)
|
||||
&buff_conv, buff_uchar, len_uchar);
|
||||
icu_from_uchar(&result, buff_conv, len_conv);
|
||||
pfree(buff_uchar);
|
||||
pfree(buff_conv);
|
||||
}
|
||||
else
|
||||
#endif
|
||||
@ -1833,6 +1835,7 @@ str_initcap(const char *buff, size_t nbytes, Oid collid)
|
||||
&buff_conv, buff_uchar, len_uchar);
|
||||
icu_from_uchar(&result, buff_conv, len_conv);
|
||||
pfree(buff_uchar);
|
||||
pfree(buff_conv);
|
||||
}
|
||||
else
|
||||
#endif
|
||||
|
Loading…
Reference in New Issue
Block a user