changeset 17461:2e239d925c09

lib: Changed net_geterror() to return errno instead of -1 if getsockopt() fails. None of the callers were actually checking for the -1 error value but instead just passing it to strerror(). Since this error should just about never happen it's better to just return a usable return value than try to remember to handle errors that can't normally even happen. Found by Coverity
author Timo Sirainen <tss@iki.fi>
date Fri, 13 Jun 2014 00:09:23 +0300
parents c699a3eb0b75
children a07ddd1b2763
files src/lib/net.c
diffstat 1 files changed, 6 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/src/lib/net.c	Fri Jun 13 00:05:16 2014 +0300
+++ b/src/lib/net.c	Fri Jun 13 00:09:23 2014 +0300
@@ -961,8 +961,12 @@
 	int data;
 	socklen_t len = sizeof(data);
 
-	if (getsockopt(fd, SOL_SOCKET, SO_ERROR, &data, &len) == -1)
-		return -1;
+	if (getsockopt(fd, SOL_SOCKET, SO_ERROR, &data, &len) == -1) {
+		/* we're now really returning the getsockopt()'s error code
+		   instead of the socket's, but normally we should never get
+		   here anyway. */
+		return errno;
+	}
 
 	return data;
 }