[pgpool-committers: 2679] pgpool: Fix ancient bug of pool_push() and friends.
Tatsuo Ishii
ishii at postgresql.org
Thu Sep 3 11:02:20 JST 2015
Fix ancient bug of pool_push() and friends.
It allocates buffer using realloc and uses the pointer
returned. However it does the pointer calculation *before* realloc
gets called. So the calculation uses the old pointer value, which
causes various problems including segfault later. It is surprising
that this bug was not found earlier because the bug was there since
the function was added. This is probably due to the fact that actual
pointer moving does not happen until certain amount of memory.
Also there were other problems with it. The buffer pointer and buffer
size variable is not initialized. The buffer is not freed by
pool_close. Typo in debugging message (3.4 or later only). They are
fixed as well.
Branches
--------
extended_protocol_performance
master
Details
-------
http://git.postgresql.org/gitweb?p=pgpool2.git;a=commitdiff;h=17bc8a893f8a5393c1e5216177fb11d7ba90d561
Modified Files
--------------
src/utils/pool_stream.c | 10 +++++++---
1 file changed, 7 insertions(+), 3 deletions(-)
More information about the pgpool-committers
mailing list