diff options
| author | Roy Marples <roy@marples.name> | 2020-06-10 11:16:14 +0100 |
|---|---|---|
| committer | Roy Marples <roy@marples.name> | 2020-06-10 11:16:14 +0100 |
| commit | 96f6ea301c981495fd43a0deb722c7423fe505f6 (patch) | |
| tree | bd0f6cd66a356f6fbe59702b1835d14385c796bf /src/privsep-root.c | |
| parent | 8fdd34b858450503daf96409458fb48834d56163 (diff) | |
| download | dhcpcd-96f6ea301c981495fd43a0deb722c7423fe505f6.tar.xz | |
Try and guard against impossibly large data.
Diffstat (limited to 'src/privsep-root.c')
| -rw-r--r-- | src/privsep-root.c | 6 |
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); |
