diff options
author | Heikki Linnakangas <heikki.linnakangas@iki.fi> | 2021-11-03 10:28:52 +0200 |
---|---|---|
committer | Heikki Linnakangas <heikki.linnakangas@iki.fi> | 2021-11-03 10:54:33 +0200 |
commit | 4ebd740cd3f3afe5523c5947be836edf8cccdc27 (patch) | |
tree | 26f5dd9f1e7a48b65ec189983d2984fa2a99c67d /src/backend/executor/nodeWindowAgg.c | |
parent | f6162c020c880189255e77e33bde74a2b951eaae (diff) |
Fix snapshot reference leak if lo_export fails.
If lo_export() fails to open the target file or to write to it, it leaks
the created LargeObjectDesc and its snapshot in the top-transaction
context and resource owner. That's pretty harmless, it's a small leak
after all, but it gives the user a "Snapshot reference leak" warning.
Fix by using a short-lived memory context and no resource owner for
transient LargeObjectDescs that are opened and closed within one function
call. The leak is easiest to reproduce with lo_export() on a directory
that doesn't exist, but in principle the other lo_* functions could also
fail.
Backpatch to all supported versions.
Reported-by: Andrew B
Reviewed-by: Alvaro Herrera
Discussion: https://www.postgresql.org/message-id/32bf767a-2d65-71c4-f170-122f416bab7e@iki.fi
Diffstat (limited to 'src/backend/executor/nodeWindowAgg.c')
0 files changed, 0 insertions, 0 deletions