aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEelco Dolstra <eelco.dolstra@logicblox.com>2014-12-12 17:14:28 +0100
committerEelco Dolstra <eelco.dolstra@logicblox.com>2014-12-12 17:14:28 +0100
commitb77037b8fdd89cc06d80c3564e4a4f4a4fe8aa1d (patch)
tree013324b1b3e9e79f25163729abbbd2bb1a70801f
parent46f3eb6fdd55394e90b1041e1af5089c0ca87091 (diff)
Silence some warnings on GCC 4.9
-rw-r--r--src/libmain/stack.cc2
-rw-r--r--src/libstore/build.cc6
-rw-r--r--src/libstore/remote-store.cc2
-rw-r--r--src/nix-daemon/nix-daemon.cc9
4 files changed, 12 insertions, 7 deletions
diff --git a/src/libmain/stack.cc b/src/libmain/stack.cc
index b670e695d..41b617d98 100644
--- a/src/libmain/stack.cc
+++ b/src/libmain/stack.cc
@@ -32,7 +32,7 @@ static void sigsegvHandler(int signo, siginfo_t * info, void * ctx)
if (diff < 0) diff = -diff;
if (diff < 4096) {
char msg[] = "error: stack overflow (possible infinite recursion)\n";
- write(2, msg, strlen(msg));
+ (void) write(2, msg, strlen(msg));
_exit(1); // maybe abort instead?
}
}
diff --git a/src/libstore/build.cc b/src/libstore/build.cc
index 0153666c2..08f44b392 100644
--- a/src/libstore/build.cc
+++ b/src/libstore/build.cc
@@ -1976,9 +1976,11 @@ void DerivationGoal::runChild()
/* Set the hostname etc. to fixed values. */
char hostname[] = "localhost";
- sethostname(hostname, sizeof(hostname));
+ if (sethostname(hostname, sizeof(hostname)) == -1)
+ throw SysError("cannot set host name");
char domainname[] = "(none)"; // kernel default
- setdomainname(domainname, sizeof(domainname));
+ if (setdomainname(domainname, sizeof(domainname)) == -1)
+ throw SysError("cannot set domain name");
/* Make all filesystems private. This is necessary
because subtrees may have been mounted as "shared"
diff --git a/src/libstore/remote-store.cc b/src/libstore/remote-store.cc
index 650f17798..16296bdc0 100644
--- a/src/libstore/remote-store.cc
+++ b/src/libstore/remote-store.cc
@@ -109,7 +109,7 @@ void RemoteStore::connectToDaemon()
applications... */
AutoCloseFD fdPrevDir = open(".", O_RDONLY);
if (fdPrevDir == -1) throw SysError("couldn't open current directory");
- chdir(dirOf(socketPath).c_str());
+ if (chdir(dirOf(socketPath).c_str()) == -1) throw SysError("couldn't change current directory");
Path socketPathRel = "./" + baseNameOf(socketPath);
struct sockaddr_un addr;
diff --git a/src/nix-daemon/nix-daemon.cc b/src/nix-daemon/nix-daemon.cc
index 12efd46f1..bed7de085 100644
--- a/src/nix-daemon/nix-daemon.cc
+++ b/src/nix-daemon/nix-daemon.cc
@@ -698,7 +698,8 @@ static PeerInfo getPeerInfo(int remote)
static void daemonLoop(char * * argv)
{
- chdir("/");
+ if (chdir("/") == -1)
+ throw SysError("cannot change current directory");
/* Get rid of children automatically; don't let them become
zombies. */
@@ -728,7 +729,8 @@ static void daemonLoop(char * * argv)
/* Urgh, sockaddr_un allows path names of only 108 characters.
So chdir to the socket directory so that we can pass a
relative path name. */
- chdir(dirOf(socketPath).c_str());
+ if (chdir(dirOf(socketPath).c_str()) == -1)
+ throw SysError("cannot change current directory");
Path socketPathRel = "./" + baseNameOf(socketPath);
struct sockaddr_un addr;
@@ -748,7 +750,8 @@ static void daemonLoop(char * * argv)
if (res == -1)
throw SysError(format("cannot bind to socket ‘%1%’") % socketPath);
- chdir("/"); /* back to the root */
+ if (chdir("/") == -1) /* back to the root */
+ throw SysError("cannot change current directory");
if (listen(fdSocket, 5) == -1)
throw SysError(format("cannot listen on socket ‘%1%’") % socketPath);