summaryrefslogtreecommitdiff
path: root/examples/bind9-patches/0002-prevent-a-valgrind-uninitialised-memory-warning.patch
blob: 22f0ce493f2325414d6d591cc99552cc6b277a4d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
From 31059dee4a706bb4f25f3dccaae7616451eabd8b Mon Sep 17 00:00:00 2001
From: Andrew Tridgell <tridge@samba.org>
Date: Wed, 17 Feb 2010 10:59:42 +1100
Subject: [PATCH 2/5] prevent a valgrind uninitialised memory warning

epoll uses a union, so to prevent passing uninitialised data in a
syscall we need to zero it before use.
---
 lib/isc/unix/socket.c |    2 ++
 1 files changed, 2 insertions(+), 0 deletions(-)

diff --git a/lib/isc/unix/socket.c b/lib/isc/unix/socket.c
index d09fe51..4796ee4 100644
--- a/lib/isc/unix/socket.c
+++ b/lib/isc/unix/socket.c
@@ -652,6 +652,7 @@ watch_fd(isc_socketmgr_t *manager, int fd, int msg) {
		event.events = EPOLLIN;
	else
		event.events = EPOLLOUT;
+	memset(&event.data, 0, sizeof(event.data));
	event.data.fd = fd;
	if (epoll_ctl(manager->epoll_fd, EPOLL_CTL_ADD, fd, &event) == -1 &&
	    errno != EEXIST) {
@@ -719,6 +720,7 @@ unwatch_fd(isc_socketmgr_t *manager, int fd, int msg) {
		event.events = EPOLLIN;
	else
		event.events = EPOLLOUT;
+	memset(&event.data, 0, sizeof(event.data));
	event.data.fd = fd;
	if (epoll_ctl(manager->epoll_fd, EPOLL_CTL_DEL, fd, &event) == -1 &&
	    errno != ENOENT) {
--
1.6.3.3