Use 'void *' for arbitrary buffers, 'uint8 *' for byte arrays
authorHeikki Linnakangas <heikki.linnakangas@iki.fi>
Thu, 8 May 2025 19:01:25 +0000 (22:01 +0300)
committerHeikki Linnakangas <heikki.linnakangas@iki.fi>
Thu, 8 May 2025 19:01:25 +0000 (22:01 +0300)
commitb28c59a6cd089902e66a91e0d0974da34d1c922b
treeb114ea0f8fa89e2251b80ef7ba13a04ef0a25891
parent965213d9c56a671086525a65f5427653b4a66350
Use 'void *' for arbitrary buffers, 'uint8 *' for byte arrays

A 'void *' argument suggests that the caller might pass an arbitrary
struct, which is appropriate for functions like libc's read/write, or
pq_sendbytes(). 'uint8 *' is more appropriate for byte arrays that
have no structure, like the cancellation keys or SCRAM tokens. Some
places used 'char *', but 'uint8 *' is better because 'char *' is
commonly used for null-terminated strings. Change code around SCRAM,
MD5 authentication, and cancellation key handling to follow these
conventions.

Discussion: https://www.postgresql.org/message-id/61be9e31-7b7d-49d5-bc11-721800d89d64@eisentraut.org
24 files changed:
contrib/dblink/dblink.c
contrib/postgres_fdw/connection.c
src/backend/libpq/auth-scram.c
src/backend/libpq/auth.c
src/backend/libpq/crypt.c
src/backend/storage/ipc/procsignal.c
src/backend/utils/init/globals.c
src/common/base64.c
src/common/md5_common.c
src/common/scram-common.c
src/include/common/base64.h
src/include/common/md5.h
src/include/common/scram-common.h
src/include/libpq/auth.h
src/include/libpq/crypt.h
src/include/libpq/pqcomm.h
src/include/miscadmin.h
src/include/storage/procsignal.h
src/interfaces/libpq/fe-auth-scram.c
src/interfaces/libpq/fe-auth.c
src/interfaces/libpq/fe-cancel.c
src/interfaces/libpq/fe-misc.c
src/interfaces/libpq/fe-protocol3.c
src/interfaces/libpq/libpq-int.h