changeset 5264:868ac20cdbad draft

Fix some memory issues with prior
author Roy Marples <roy@marples.name>
date Sun, 24 May 2020 12:02:15 +0000
parents 1e7ce40ed871
children b3b3fad25788
files src/if-linux.c src/privsep-bpf.c
diffstat 2 files changed, 6 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- a/src/if-linux.c	Sun May 24 12:30:13 2020 +0100
+++ b/src/if-linux.c	Sun May 24 12:02:15 2020 +0000
@@ -255,9 +255,12 @@
 if_writepathuint(struct dhcpcd_ctx *ctx, const char *path, unsigned int val)
 {
 	char buf[64];
+	int len;
 
-	snprintf(buf, sizeof(buf), "%u\n", val);
-	return dhcp_writefile(ctx, path, 0664, buf, sizeof(buf));
+	len = snprintf(buf, sizeof(buf), "%u\n", val);
+	if (len == -1)
+		return -1;
+	return dhcp_writefile(ctx, path, 0664, buf, (size_t)len);
 }
 
 int
--- a/src/privsep-bpf.c	Sun May 24 12:30:13 2020 +0100
+++ b/src/privsep-bpf.c	Sun May 24 12:02:15 2020 +0000
@@ -81,7 +81,7 @@
 			break;
 		psm.ps_flags = bpf->bpf_flags;
 		len = ps_sendpsmdata(psp->psp_ctx, psp->psp_ctx->ps_data_fd,
-		    &psm, buf, (size_t)len + sizeof(bpf->bpf_flags));
+		    &psm, buf, (size_t)len);
 		if (len == -1 && errno != ECONNRESET)
 			logerr(__func__);
 		if (len == -1 || len == 0)