[PATCH v1] Added more error checks when strtol function is used

Imran Zaman imran.zaman at gmail.com
Tue Nov 4 05:55:06 PST 2014


Signed-off-by: Imran Zaman <imran.zaman at gmail.com>
---
 src/scanner.c        | 2 +-
 src/wayland-client.c | 3 ++-
 2 files changed, 3 insertions(+), 2 deletions(-)

diff --git a/src/scanner.c b/src/scanner.c
index 5e5152b..2ed9775 100644
--- a/src/scanner.c
+++ b/src/scanner.c
@@ -407,7 +407,7 @@ start_element(void *data, const char *element_name, const char **atts)
 		if (since != NULL) {
 			errno = 0;
 			version = strtol(since, &end, 0);
-			if (errno == EINVAL || end == since || *end != '\0')
+			if (errno != 0 || end == since || *end != '\0')
 				fail(&ctx->loc,
 				     "invalid integer (%s)\n", since);
 		} else {
diff --git a/src/wayland-client.c b/src/wayland-client.c
index b0f77b9..c99dbeb 100644
--- a/src/wayland-client.c
+++ b/src/wayland-client.c
@@ -829,8 +829,9 @@ wl_display_connect(const char *name)
 
 	connection = getenv("WAYLAND_SOCKET");
 	if (connection) {
+		errno = 0;
 		fd = strtol(connection, &end, 0);
-		if (*end != '\0')
+		if (errno != 0 || connection == end || *end != '\0')
 			return NULL;
 
 		flags = fcntl(fd, F_GETFD);
-- 
1.9.1



More information about the wayland-devel mailing list