Undo thinko in commit e78d1d6d4.

In pursuit of removing a Valgrind-detected leak, I inserted
"pfree(pq_mq_handle);" into mq_putmessage's recursion-trouble-recovery
code path, failing to notice that shm_mq_detach would have pfree'd
that block just before (i.e., this particular code path did not leak).
So now that was a double pfree.  We didn't notice because the
recursion scenario isn't exercised in our regression tests, but
Alexander Lakhin found it via code fuzzing.

Reported-by: Alexander Lakhin <exclusion@gmail.com>
Author: Tom Lane <tgl@sss.pgh.pa.us>
Discussion: https://postgr.es/m/b8b40954-e155-41b3-9af8-ad4f261a1b64@gmail.com
This commit is contained in:
Tom Lane 2026-06-10 17:01:45 -04:00
parent e18b0cb734
commit 9d141466ff

View file

@ -140,7 +140,6 @@ mq_putmessage(char msgtype, const char *s, size_t len)
if (pq_mq_handle != NULL)
{
shm_mq_detach(pq_mq_handle);
pfree(pq_mq_handle);
pq_mq_handle = NULL;
}
return EOF;