Replace calls of htonl()/ntohl() with pg_bswap.h for GSSAPI encryption
authorMichael Paquier <[email protected]>
Thu, 15 Oct 2020 08:03:56 +0000 (17:03 +0900)
committerMichael Paquier <[email protected]>
Thu, 15 Oct 2020 08:03:56 +0000 (17:03 +0900)
The in-core equivalents can make use of built-in functions if the
compiler supports this option, making optimizations possible.  0ba99c8
replaced all existing calls in the code base at this time, but b0b39f7
(GSSAPI encryption) has forgotten to do the switch.

Discussion: https://postgr.es/m/20201014055303[email protected]

src/backend/libpq/be-secure-gssapi.c
src/interfaces/libpq/fe-secure-gssapi.c

index 64427f185bb765328f48fc088df6436c04ae2187..5a73302b7b9ea65dc8a3d57d232d473ef54ce2c1 100644 (file)
@@ -209,7 +209,7 @@ be_gssapi_write(Port *port, void *ptr, size_t len)
        PqGSSSendConsumed += input.length;
 
        /* 4 network-order bytes of length, then payload */
-       netlen = htonl(output.length);
+       netlen = pg_hton32(output.length);
        memcpy(PqGSSSendBuffer + PqGSSSendLength, &netlen, sizeof(uint32));
        PqGSSSendLength += sizeof(uint32);
 
@@ -323,7 +323,7 @@ be_gssapi_read(Port *port, void *ptr, size_t len)
        }
 
        /* Decode the packet length and check for overlength packet */
-       input.length = ntohl(*(uint32 *) PqGSSRecvBuffer);
+       input.length = pg_ntoh32(*(uint32 *) PqGSSRecvBuffer);
 
        if (input.length > PQ_GSS_RECV_BUFFER_SIZE - sizeof(uint32))
            ereport(FATAL,
@@ -509,7 +509,7 @@ secure_open_gssapi(Port *port)
        /*
         * Get the length for this packet from the length header.
         */
-       input.length = ntohl(*(uint32 *) PqGSSRecvBuffer);
+       input.length = pg_ntoh32(*(uint32 *) PqGSSRecvBuffer);
 
        /* Done with the length, reset our buffer */
        PqGSSRecvLength = 0;
@@ -567,7 +567,7 @@ secure_open_gssapi(Port *port)
         */
        if (output.length > 0)
        {
-           uint32      netlen = htonl(output.length);
+           uint32      netlen = pg_hton32(output.length);
 
            if (output.length > PQ_GSS_SEND_BUFFER_SIZE - sizeof(uint32))
                ereport(FATAL,
index 1994e9f6150685d137103d19fb019d07d8c5907d..bfc0f5521468bb4b6f3605d978d62e8c35204d0f 100644 (file)
@@ -226,7 +226,7 @@ pg_GSS_write(PGconn *conn, const void *ptr, size_t len)
        PqGSSSendConsumed += input.length;
 
        /* 4 network-order bytes of length, then payload */
-       netlen = htonl(output.length);
+       netlen = pg_hton32(output.length);
        memcpy(PqGSSSendBuffer + PqGSSSendLength, &netlen, sizeof(uint32));
        PqGSSSendLength += sizeof(uint32);
 
@@ -346,7 +346,7 @@ pg_GSS_read(PGconn *conn, void *ptr, size_t len)
        }
 
        /* Decode the packet length and check for overlength packet */
-       input.length = ntohl(*(uint32 *) PqGSSRecvBuffer);
+       input.length = pg_ntoh32(*(uint32 *) PqGSSRecvBuffer);
 
        if (input.length > PQ_GSS_RECV_BUFFER_SIZE - sizeof(uint32))
        {
@@ -589,7 +589,7 @@ pqsecure_open_gss(PGconn *conn)
         */
 
        /* Get the length and check for over-length packet */
-       input.length = ntohl(*(uint32 *) PqGSSRecvBuffer);
+       input.length = pg_ntoh32(*(uint32 *) PqGSSRecvBuffer);
        if (input.length > PQ_GSS_RECV_BUFFER_SIZE - sizeof(uint32))
        {
            printfPQExpBuffer(&conn->errorMessage,
@@ -688,7 +688,7 @@ pqsecure_open_gss(PGconn *conn)
    }
 
    /* Queue the token for writing */
-   netlen = htonl(output.length);
+   netlen = pg_hton32(output.length);
 
    memcpy(PqGSSSendBuffer, (char *) &netlen, sizeof(uint32));
    PqGSSSendLength += sizeof(uint32);