changeset 5329:cc6b3545c52c draft

privsep: limit psr_datalen to SSIZE_MAX
author Roy Marples <roy@marples.name>
date Tue, 09 Jun 2020 19:33:23 +0100
parents ea68407e5ac8
children 7b6f2daea002
files src/privsep-root.c
diffstat 1 files changed, 2 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/src/privsep-root.c	Tue Jun 09 18:25:18 2020 +0100
+++ b/src/privsep-root.c	Tue Jun 09 19:33:23 2020 +0100
@@ -151,6 +151,8 @@
 		PSR_ERROR(errno);
 	else if ((size_t)len < sizeof(*psr_error))
 		PSR_ERROR(EINVAL);
+	else if (psr_error->psr_datalen > SSIZE_MAX)
+		PSR_ERROR(ENOBUFS);
 
 	if (psr_error->psr_datalen != 0) {
 		psr_ctx->psr_data = malloc(psr_error->psr_datalen);