From 2edc45010802bffc986662091ca0e2d4d8f054ef Mon Sep 17 00:00:00 2001
From: Ralf Jung <post@ralfj.de>
Date: Fri, 9 Aug 2013 22:25:23 +0200
Subject: [PATCH] cast last argument of execl; check for errors in dup2

---
 dyn-nsupdate.cpp | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/dyn-nsupdate.cpp b/dyn-nsupdate.cpp
index 4cb7ead..7c39136 100644
--- a/dyn-nsupdate.cpp
+++ b/dyn-nsupdate.cpp
@@ -77,9 +77,12 @@ int main(int argc, const char ** argv)
 		/* We're in the child */
 		/* Close write end, use read and as stdin */
 		close(pipe_ends[1]);
-		dup2(pipe_ends[0], fileno(stdin));
+		if (dup2(pipe_ends[0], fileno(stdin)) < 0) {
+			std::cerr << "There was an error redirecting stdin." << std::endl;
+			exit(1);
+		}
 		/* exec nsupdate */
-		execl(nsupdate.c_str(), nsupdate.c_str(), "-k", keyfile.c_str(), NULL);
+		execl(nsupdate.c_str(), nsupdate.c_str(), "-k", keyfile.c_str(), (char *)NULL);
 		/* There was an error */
 		std::cerr << "There was an error executing nsupdate." << std::endl;
 		exit(1);
-- 
2.39.5