Make TLS write functions' buffer arguments pointers const
authorPeter Eisentraut
Sun, 9 Feb 2025 11:10:25 +0000 (12:10 +0100)
committerPeter Eisentraut
Sun, 9 Feb 2025 11:43:30 +0000 (12:43 +0100)
This also makes it match the equivalent APIs in libpq.

Author: Dagfinn Ilmari Mannsåker 
Discussion: https://www.postgresql.org/message-id/flat/fd1fcedb-3492-4fc8-9e3e-74b97f2db6c7%40eisentraut.org

src/backend/libpq/be-secure-gssapi.c
src/backend/libpq/be-secure-openssl.c
src/backend/libpq/be-secure.c
src/backend/libpq/pqcomm.c
src/include/libpq/libpq-be.h
src/include/libpq/libpq.h

index bcb750e241a4bb0ed2f7ffbd6f7a7115d1056165..fc5a8d82a9dd933e14969c349446ed119a745c99 100644 (file)
@@ -93,7 +93,7 @@ static uint32 PqGSSMaxPktSize;    /* Maximum size we can encrypt and fit the
  * failure if necessary, and then return an errno indicating connection loss.
  */
 ssize_t
-be_gssapi_write(Port *port, void *ptr, size_t len)
+be_gssapi_write(Port *port, const void *ptr, size_t len)
 {
    OM_uint32   major,
                minor;
index abf67bb1b2728e6d2cc9851ca71006d2fd0cde54..64ff3ce3d6a7a1d1f06d352440b3162c68fde6b1 100644 (file)
@@ -821,7 +821,7 @@ be_tls_read(Port *port, void *ptr, size_t len, int *waitfor)
 }
 
 ssize_t
-be_tls_write(Port *port, void *ptr, size_t len, int *waitfor)
+be_tls_write(Port *port, const void *ptr, size_t len, int *waitfor)
 {
    ssize_t     n;
    int         err;
index 3b4f80146be835c95da993b0498f9b43d1138a66..91576f942857d703c8eaf0e41a88817898e23da4 100644 (file)
@@ -302,7 +302,7 @@ secure_raw_read(Port *port, void *ptr, size_t len)
  * Write data to a secure connection.
  */
 ssize_t
-secure_write(Port *port, void *ptr, size_t len)
+secure_write(Port *port, const void *ptr, size_t len)
 {
    ssize_t     n;
    int         waitfor;
index 1bf27d93cfa514690aee7fe79f6ed9f5ec68192c..bddd6465de2e057b96fd19a9472e251bf1dc1b63 100644 (file)
@@ -1368,7 +1368,7 @@ internal_flush_buffer(const char *buf, size_t *start, size_t *end)
    {
        int         r;
 
-       r = secure_write(MyProcPort, (char *) bufptr, bufend - bufptr);
+       r = secure_write(MyProcPort, bufptr, bufend - bufptr);
 
        if (r <= 0)
        {
index 2f6c29200ba65fd217d4637c8f895f4b55fefd72..7fe92b15477eb012b7ba909d4bf61ee54305f6d6 100644 (file)
@@ -312,7 +312,7 @@ extern ssize_t be_tls_read(Port *port, void *ptr, size_t len, int *waitfor);
 /*
  * Write data to a secure connection.
  */
-extern ssize_t be_tls_write(Port *port, void *ptr, size_t len, int *waitfor);
+extern ssize_t be_tls_write(Port *port, const void *ptr, size_t len, int *waitfor);
 
 /*
  * Return information about the SSL connection.
@@ -352,7 +352,7 @@ extern bool be_gssapi_get_delegation(Port *port);
 
 /* Read and write to a GSSAPI-encrypted connection. */
 extern ssize_t be_gssapi_read(Port *port, void *ptr, size_t len);
-extern ssize_t be_gssapi_write(Port *port, void *ptr, size_t len);
+extern ssize_t be_gssapi_write(Port *port, const void *ptr, size_t len);
 #endif                         /* ENABLE_GSS */
 
 extern PGDLLIMPORT ProtocolVersion FrontendProtocol;
index 13d8143a893a556b32b10bc171389fdbfaafcc73..8defcb6de19f9dd25d57ed51a45f44c944c1def4 100644 (file)
@@ -92,7 +92,7 @@ extern void secure_destroy(void);
 extern int secure_open_server(Port *port);
 extern void secure_close(Port *port);
 extern ssize_t secure_read(Port *port, void *ptr, size_t len);
-extern ssize_t secure_write(Port *port, void *ptr, size_t len);
+extern ssize_t secure_write(Port *port, const void *ptr, size_t len);
 extern ssize_t secure_raw_read(Port *port, void *ptr, size_t len);
 extern ssize_t secure_raw_write(Port *port, const void *ptr, size_t len);