mirror of
https://github.com/vincentmli/bpfire.git
synced 2026-05-10 09:18:25 +02:00
dhcpcd: Fix buffer overflow at startup
Fixes: #13252 - dhcpcd fails in next Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
This commit is contained in:
@@ -0,0 +1,26 @@
|
||||
From f798bf23af8e5a0eae38931912e2b67e1d45aca4 Mon Sep 17 00:00:00 2001
|
||||
From: Tobias Heider <tobhe@users.noreply.github.com>
|
||||
Date: Sat, 12 Aug 2023 21:59:21 +0200
|
||||
Subject: [PATCH] dhcpcd: Fix off-by-one overflow when read() writes full
|
||||
BUFSIZ (#236)
|
||||
|
||||
---
|
||||
src/dhcpcd.c | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/src/dhcpcd.c b/src/dhcpcd.c
|
||||
index e06733d3..688a3a6d 100644
|
||||
--- a/src/dhcpcd.c
|
||||
+++ b/src/dhcpcd.c
|
||||
@@ -1822,7 +1822,7 @@ dhcpcd_stderr_cb(void *arg, unsigned short events)
|
||||
if (!(events & ELE_READ))
|
||||
return;
|
||||
|
||||
- len = read(ctx->stderr_fd, log, sizeof(log));
|
||||
+ len = read(ctx->stderr_fd, log, sizeof(log) - 1);
|
||||
if (len == -1) {
|
||||
if (errno != ECONNRESET)
|
||||
logerr(__func__);
|
||||
--
|
||||
2.39.2
|
||||
|
||||
@@ -0,0 +1,28 @@
|
||||
From 1bd8fc7d4b34f752a32709d277a897e5ad202d97 Mon Sep 17 00:00:00 2001
|
||||
From: Tobias Heider <tobhe@users.noreply.github.com>
|
||||
Date: Tue, 15 Aug 2023 18:06:48 +0200
|
||||
Subject: [PATCH] privsep: fix strlcpy overflow in psp_ifname (#239)
|
||||
|
||||
When running our Ubuntu tests with libc6 and strlcpy overflow checks
|
||||
enabled we found that the wrong size is passed to strlcpy resulting
|
||||
in a crash because of an overflow.
|
||||
---
|
||||
src/privsep.c | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/src/privsep.c b/src/privsep.c
|
||||
index b11c0351..cfe54742 100644
|
||||
--- a/src/privsep.c
|
||||
+++ b/src/privsep.c
|
||||
@@ -1200,7 +1200,7 @@ ps_newprocess(struct dhcpcd_ctx *ctx, struct ps_id *psid)
|
||||
#endif
|
||||
|
||||
if (!(ctx->options & DHCPCD_MANAGER))
|
||||
- strlcpy(psp->psp_ifname, ctx->ifv[0], sizeof(psp->psp_name));
|
||||
+ strlcpy(psp->psp_ifname, ctx->ifv[0], sizeof(psp->psp_ifname));
|
||||
TAILQ_INSERT_TAIL(&ctx->ps_processes, psp, next);
|
||||
return psp;
|
||||
}
|
||||
--
|
||||
2.39.2
|
||||
|
||||
Reference in New Issue
Block a user