summaryrefslogtreecommitdiff
path: root/src/backend/commands/createas.c
diff options
context:
space:
mode:
authorHeikki Linnakangas <heikki.linnakangas@iki.fi>2021-11-03 10:28:52 +0200
committerHeikki Linnakangas <heikki.linnakangas@iki.fi>2021-11-03 10:54:36 +0200
commit07070c0082aacc9e9bf09d1d08bc3a60c999332e (patch)
treee6f035bcccb9519b3af703548a8910c5d6596a38 /src/backend/commands/createas.c
parentada667b45496998674818e135e9cd6580f1bc019 (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/commands/createas.c')
0 files changed, 0 insertions, 0 deletions