Hi Peter,
I have only skimmed the patches, but one hunk jumped out at me:
Peter Eisentraut <peter@eisentraut.org> writes:
> diff --git a/src/backend/libpq/pqcomm.c b/src/backend/libpq/pqcomm.c
> index 1bf27d93cfa..937a2b02a4f 100644
> --- a/src/backend/libpq/pqcomm.c
> +++ b/src/backend/libpq/pqcomm.c
> @@ -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, unconstify(char *, bufptr), bufend - bufptr);
>
> if (r <= 0)
> {
Insted of unconstify here, could we not make secure_write() (and
be_tls_write()) take the buffer pointer as const void *, like the
attached?
- ilmari
From 70d7fe7de4a504ece6c8289960a2014d960d7450 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Dagfinn=20Ilmari=20Manns=C3=A5ker?= <ilmari@ilmari.org>
Date: Thu, 6 Feb 2025 11:46:08 +0000
Subject: [PATCH] Make TLS write functions' buffe arguments pointers to const
---
src/backend/libpq/be-secure-openssl.c | 2 +-
src/backend/libpq/be-secure.c | 2 +-
src/backend/libpq/pqcomm.c | 2 +-
src/include/libpq/libpq-be.h | 2 +-
src/include/libpq/libpq.h | 2 +-
5 files changed, 5 insertions(+), 5 deletions(-)
diff --git a/src/backend/libpq/be-secure-openssl.c b/src/backend/libpq/be-secure-openssl.c
index abf67bb1b27..64ff3ce3d6a 100644
--- a/src/backend/libpq/be-secure-openssl.c
+++ b/src/backend/libpq/be-secure-openssl.c
@@ -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;
diff --git a/src/backend/libpq/be-secure.c b/src/backend/libpq/be-secure.c
index 3b4f80146be..91576f94285 100644
--- a/src/backend/libpq/be-secure.c
+++ b/src/backend/libpq/be-secure.c
@@ -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;
diff --git a/src/backend/libpq/pqcomm.c b/src/backend/libpq/pqcomm.c
index 1bf27d93cfa..bddd6465de2 100644
--- a/src/backend/libpq/pqcomm.c
+++ b/src/backend/libpq/pqcomm.c
@@ -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)
{
diff --git a/src/include/libpq/libpq-be.h b/src/include/libpq/libpq-be.h
index 2f6c29200ba..3247088676a 100644
--- a/src/include/libpq/libpq-be.h
+++ b/src/include/libpq/libpq-be.h
@@ -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.
diff --git a/src/include/libpq/libpq.h b/src/include/libpq/libpq.h
index 13d8143a893..8defcb6de19 100644
--- a/src/include/libpq/libpq.h
+++ b/src/include/libpq/libpq.h
@@ -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);
--
2.48.1