Fix query cancellation.

In commit fe0a0b59, the datatype used for MyCancelKey and other variables
that store cancel keys were changed from long to uint32, but I missed this
one. That broke query cancellation on platforms where long is wider than 32
bits.

Report by Andres Freund, fix by Michael Paquier.
This commit is contained in:
Heikki Linnakangas 2016-12-07 09:47:43 +02:00
parent 9790b87f59
commit 81f2e514a9
1 changed files with 2 additions and 2 deletions

View File

@ -2216,7 +2216,7 @@ processCancelRequest(Port *port, void *pkt)
{
CancelRequestPacket *canc = (CancelRequestPacket *) pkt;
int backendPID;
long cancelAuthCode;
int32 cancelAuthCode;
Backend *bp;
#ifndef EXEC_BACKEND
@ -2226,7 +2226,7 @@ processCancelRequest(Port *port, void *pkt)
#endif
backendPID = (int) ntohl(canc->backendPID);
cancelAuthCode = (long) ntohl(canc->cancelAuthCode);
cancelAuthCode = (int32) ntohl(canc->cancelAuthCode);
/*
* See if we have a matching backend. In the EXEC_BACKEND case, we can no