Commit d6f4fab8 authored by Linus Nordberg's avatar Linus Nordberg

Verify return code from fcntl calls.

Have connectnonblocking() warn and fail if setting O_NONBLOCK fails.
Have it warn if restoring of flags fail.

coverity: 1449515
parent 011523ec
......@@ -171,7 +171,14 @@ int connectnonblocking(int s, const struct sockaddr *addr, socklen_t addrlen, st
socklen_t len;
origflags = fcntl(s, F_GETFL, 0);
fcntl(s, F_SETFL, origflags | O_NONBLOCK);
if (origflags == -1) {
debugerrno(errno, DBG_WARN, "Failed to get flags");
return -1;
}
if (fcntl(s, F_SETFL, origflags | O_NONBLOCK) == -1) {
debugerrno(errno, DBG_WARN, "Failed to set O_NONBLOCK");
return -1;
}
if (!connect(s, addr, addrlen)) {
r = 0;
goto exit;
......@@ -189,7 +196,8 @@ int connectnonblocking(int s, const struct sockaddr *addr, socklen_t addrlen, st
r = 0;
exit:
fcntl(s, F_SETFL, origflags);
if (fcntl(s, F_SETFL, origflags) == -1)
debugerrno(errno, DBG_WARN, "Failed to set original flags back");
return r;
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment