Fix coding rules violations in walreceiver.c
authorAlvaro Herrera <alvherre@alvh.no-ip.org>
Tue, 3 Oct 2017 12:58:25 +0000 (14:58 +0200)
committerAlvaro Herrera <alvherre@alvh.no-ip.org>
Tue, 3 Oct 2017 12:58:25 +0000 (14:58 +0200)
commit89e434b59caffeeeb7478653c74ad5d7a50d2e96
treed40bd2a8db9e98207619d84d16b469645352da28
parentf41bd4cb90eb1d93631a346bf71d17dfc4beee50
Fix coding rules violations in walreceiver.c

1. Since commit b1a9bad9e744 we had pstrdup() inside a
spinlock-protected critical section; reported by Andreas Seltenreich.
Turn those into strlcpy() to stack-allocated variables instead.
Backpatch to 9.6.

2. Since commit 9ed551e0a4fd we had a pfree() uselessly inside a
spinlock-protected critical section.  Tom Lane noticed in code review.
Move down.  Backpatch to 9.6.

3. Since commit 64233902d22b we had GetCurrentTimestamp() (a kernel
call) inside a spinlock-protected critical section.  Tom Lane noticed in
code review.  Move it up.  Backpatch to 9.2.

4. Since commit 1bb2558046cc we did elog(PANIC) while holding spinlock.
Tom Lane noticed in code review.  Release spinlock before dying.
Backpatch to 9.2.

Discussion: https://postgr.es/m/87h8vhtgj2.fsf@ansel.ydns.eu
src/backend/replication/walreceiver.c