diff --git a/console-server.c b/console-server.c
index 4521ef7..8e24da6 100644
--- a/console-server.c
+++ b/console-server.c
@@ -534,17 +534,22 @@
 
 	/* add one to our pollers array */
 	n = console->n_pollers++;
-	console->pollers =
-		realloc(console->pollers,
-			sizeof(*console->pollers) * console->n_pollers);
+	/*
+	 * We're managing an array of pointers to aggregates, so don't warn about sizeof() on a
+	 * pointer type.
+	 */
+	/* NOLINTBEGIN(bugprone-sizeof-expression) */
+	console->pollers = reallocarray(console->pollers, console->n_pollers,
+					sizeof(*console->pollers));
+	/* NOLINTEND(bugprone-sizeof-expression) */
 
 	console->pollers[n] = poller;
 
 	/* increase pollfds array too  */
 	console->pollfds =
-		realloc(console->pollfds,
-			sizeof(*console->pollfds) *
-				(MAX_INTERNAL_POLLFD + console->n_pollers));
+		reallocarray(console->pollfds,
+			     (MAX_INTERNAL_POLLFD + console->n_pollers),
+			     sizeof(*console->pollfds));
 
 	/* shift the end pollfds up by one */
 	memcpy(&console->pollfds[n + 1], &console->pollfds[n],
@@ -569,13 +574,19 @@
 
 	console->n_pollers--;
 
-	/* remove the item from the pollers array... */
+	/*
+	 * Remove the item from the pollers array...
+	 *
+	 * We're managing an array of pointers to aggregates, so don't warn about sizeof() on a
+	 * pointer type.
+	 */
+	/* NOLINTBEGIN(bugprone-sizeof-expression) */
 	memmove(&console->pollers[i], &console->pollers[i + 1],
 		sizeof(*console->pollers) * (console->n_pollers - i));
 
-	console->pollers =
-		realloc(console->pollers,
-			sizeof(*console->pollers) * console->n_pollers);
+	console->pollers = reallocarray(console->pollers, console->n_pollers,
+					sizeof(*console->pollers));
+	/* NOLINTEND(bugprone-sizeof-expression) */
 
 	/* ... and the pollfds array */
 	memmove(&console->pollfds[i], &console->pollfds[i + 1],
@@ -583,9 +594,9 @@
 			(MAX_INTERNAL_POLLFD + console->n_pollers - i));
 
 	console->pollfds =
-		realloc(console->pollfds,
-			sizeof(*console->pollfds) *
-				(MAX_INTERNAL_POLLFD + console->n_pollers));
+		reallocarray(console->pollfds,
+			     (MAX_INTERNAL_POLLFD + console->n_pollers),
+			     sizeof(*console->pollfds));
 
 	free(poller);
 }
diff --git a/ringbuffer.c b/ringbuffer.c
index 48c163a..efa5204 100644
--- a/ringbuffer.c
+++ b/ringbuffer.c
@@ -77,8 +77,14 @@
 	rbc->pos = rb->tail;
 
 	n = rb->n_consumers++;
-	rb->consumers = realloc(rb->consumers,
-				sizeof(*rb->consumers) * rb->n_consumers);
+	/*
+	 * We're managing an array of pointers to aggregates, so don't warn about sizeof() on a
+	 * pointer type.
+	 */
+	/* NOLINTBEGIN(bugprone-sizeof-expression) */
+	rb->consumers = reallocarray(rb->consumers, rb->n_consumers,
+				     sizeof(*rb->consumers));
+	/* NOLINTEND(bugprone-sizeof-expression) */
 	rb->consumers[n] = rbc;
 
 	return rbc;
@@ -97,11 +103,17 @@
 
 	rb->n_consumers--;
 
+	/*
+	 * We're managing an array of pointers to aggregates, so don't warn about sizeof() on a
+	 * pointer type.
+	 */
+	/* NOLINTBEGIN(bugprone-sizeof-expression) */
 	memmove(&rb->consumers[i], &rb->consumers[i + 1],
 		sizeof(*rb->consumers) * (rb->n_consumers - i));
 
-	rb->consumers = realloc(rb->consumers,
-				sizeof(*rb->consumers) * rb->n_consumers);
+	rb->consumers = reallocarray(rb->consumers, rb->n_consumers,
+				     sizeof(*rb->consumers));
+	/* NOLINTEND(bugprone-sizeof-expression) */
 
 	free(rbc);
 }
diff --git a/socket-handler.c b/socket-handler.c
index d7aaa67..954c326 100644
--- a/socket-handler.c
+++ b/socket-handler.c
@@ -86,10 +86,16 @@
 	client = NULL;
 
 	sh->n_clients--;
+	/*
+	 * We're managing an array of pointers to aggregates, so don't warn about sizeof() on a
+	 * pointer type.
+	 */
+	/* NOLINTBEGIN(bugprone-sizeof-expression) */
 	memmove(&sh->clients[idx], &sh->clients[idx + 1],
 		sizeof(*sh->clients) * (sh->n_clients - idx));
 	sh->clients =
-		realloc(sh->clients, sizeof(*sh->clients) * sh->n_clients);
+		reallocarray(sh->clients, sh->n_clients, sizeof(*sh->clients));
+	/* NOLINTEND(bugprone-sizeof-expression) */
 }
 
 static void client_set_blocked(struct client *client, bool blocked)
@@ -299,8 +305,14 @@
 		sh->console, client_ringbuffer_poll, client);
 
 	n = sh->n_clients++;
+	/*
+	 * We're managing an array of pointers to aggregates, so don't warn about sizeof() on a
+	 * pointer type.
+	 */
+	/* NOLINTBEGIN(bugprone-sizeof-expression) */
 	sh->clients =
-		realloc(sh->clients, sizeof(*sh->clients) * sh->n_clients);
+		reallocarray(sh->clients, sh->n_clients, sizeof(*sh->clients));
+	/* NOLINTEND(bugprone-sizeof-expression) */
 	sh->clients[n] = client;
 
 	return POLLER_OK;
