]> granicus.if.org Git - postgresql/commitdiff
Fix incorrect close() call in dsm_impl_mmap().
authorTom Lane <tgl@sss.pgh.pa.us>
Tue, 10 Apr 2018 22:34:40 +0000 (18:34 -0400)
committerTom Lane <tgl@sss.pgh.pa.us>
Tue, 10 Apr 2018 22:34:40 +0000 (18:34 -0400)
One improbable error-exit path in this function used close() where
it should have used CloseTransientFile().  This is unlikely to be
hit in the field, and I think the consequences wouldn't be awful
(just an elog(LOG) bleat later).  But a bug is a bug, so back-patch
to 9.4 where this code came in.

Pan Bian

Discussion: https://postgr.es/m/152056616579.4966.583293218357089052@wrigleys.postgresql.org

src/backend/storage/ipc/dsm_impl.c

index 1a11d21df0cad684017358ac62bd81feb4937206..abfbadddc60fe75dddac1c7cdf5edf0dc14792f3 100644 (file)
@@ -923,7 +923,7 @@ dsm_impl_mmap(dsm_op op, dsm_handle handle, Size request_size,
 
                /* Back out what's already been done. */
                save_errno = errno;
-               close(fd);
+               CloseTransientFile(fd);
                if (op == DSM_OP_CREATE)
                        unlink(name);
                errno = save_errno;