From 2edc45010802bffc986662091ca0e2d4d8f054ef Mon Sep 17 00:00:00 2001 From: Ralf Jung 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.30.2