Signed-off-by: Imran Zaman <[email protected]>
---
 src/scanner.c        | 5 ++++-
 src/wayland-client.c | 6 +++++-
 2 files changed, 9 insertions(+), 2 deletions(-)

diff --git a/src/scanner.c b/src/scanner.c
index 5e5152b..9ba34e8 100644
--- a/src/scanner.c
+++ b/src/scanner.c
@@ -405,9 +405,12 @@ start_element(void *data, const char *element_name, const 
char **atts)
                        message->destructor = 0;
 
                if (since != NULL) {
+                       int prev_errno = errno, new_errno;
                        errno = 0;
                        version = strtol(since, &end, 0);
-                       if (errno == EINVAL || end == since || *end != '\0')
+                       new_errno = errno;
+                       errno = prev_errno;
+                       if (new_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..f4f559e 100644
--- a/src/wayland-client.c
+++ b/src/wayland-client.c
@@ -829,8 +829,12 @@ wl_display_connect(const char *name)
 
        connection = getenv("WAYLAND_SOCKET");
        if (connection) {
+               int prev_errno = errno, new_errno;
+               errno = 0;
                fd = strtol(connection, &end, 0);
-               if (*end != '\0')
+               new_errno = errno;
+               errno = prev_errno;
+               if (new_errno != 0 || connection == end || *end != '\0')
                        return NULL;
 
                flags = fcntl(fd, F_GETFD);
-- 
1.9.1

_______________________________________________
wayland-devel mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/wayland-devel

Reply via email to