summaryrefslogtreecommitdiffstats
path: root/src/privsep-root.c
diff options
context:
space:
mode:
authorRoy Marples <roy@marples.name>2020-06-10 11:16:14 +0100
committerRoy Marples <roy@marples.name>2020-06-10 11:16:14 +0100
commit96f6ea301c981495fd43a0deb722c7423fe505f6 (patch)
treebd0f6cd66a356f6fbe59702b1835d14385c796bf /src/privsep-root.c
parent8fdd34b858450503daf96409458fb48834d56163 (diff)
downloaddhcpcd-96f6ea301c981495fd43a0deb722c7423fe505f6.tar.xz
Try and guard against impossibly large data.
Diffstat (limited to 'src/privsep-root.c')
-rw-r--r--src/privsep-root.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/src/privsep-root.c b/src/privsep-root.c
index 00edd8a7..025bde9b 100644
--- a/src/privsep-root.c
+++ b/src/privsep-root.c
@@ -151,10 +151,10 @@ ps_root_mreaderrorcb(void *arg)
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) {
+ if (psr_error->psr_datalen > SSIZE_MAX)
+ PSR_ERROR(ENOBUFS);
+ else if (psr_error->psr_datalen != 0) {
psr_ctx->psr_data = malloc(psr_error->psr_datalen);
if (psr_ctx->psr_data == NULL)
PSR_ERROR(errno);