diff options
| author | Imran Zaman <imran.zaman@gmail.com> | 2014-11-05 17:40:18 +0200 |
|---|---|---|
| committer | Pekka Paalanen <pekka.paalanen@collabora.co.uk> | 2014-11-10 15:25:13 +0200 |
| commit | ff769d8faed7adb6747423a17fbdf11f87b67f64 (patch) | |
| tree | 1f42e195da324b0dea16b37c2265bca943c83f86 /src | |
| parent | tests: use our own XDG_RUNTIME_DIR for tests (diff) | |
| download | wayland-ff769d8faed7adb6747423a17fbdf11f87b67f64.tar wayland-ff769d8faed7adb6747423a17fbdf11f87b67f64.tar.gz wayland-ff769d8faed7adb6747423a17fbdf11f87b67f64.tar.bz2 wayland-ff769d8faed7adb6747423a17fbdf11f87b67f64.tar.lz wayland-ff769d8faed7adb6747423a17fbdf11f87b67f64.tar.xz wayland-ff769d8faed7adb6747423a17fbdf11f87b67f64.tar.zst wayland-ff769d8faed7adb6747423a17fbdf11f87b67f64.zip | |
scanner, client: Added more error checks when strtol function is used
Signed-off-by: Imran Zaman <imran.zaman@gmail.com>
Reviewed-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
Diffstat (limited to 'src')
| -rw-r--r-- | src/scanner.c | 4 | ||||
| -rw-r--r-- | src/wayland-client.c | 5 |
2 files changed, 7 insertions, 2 deletions
diff --git a/src/scanner.c b/src/scanner.c index 5e5152b..fa8e0c0 100644 --- a/src/scanner.c +++ b/src/scanner.c @@ -405,11 +405,13 @@ start_element(void *data, const char *element_name, const char **atts) message->destructor = 0; if (since != NULL) { + int prev_errno = errno; 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); + errno = prev_errno; } else { version = 1; } diff --git a/src/wayland-client.c b/src/wayland-client.c index b0f77b9..01629e0 100644 --- a/src/wayland-client.c +++ b/src/wayland-client.c @@ -829,9 +829,12 @@ wl_display_connect(const char *name) connection = getenv("WAYLAND_SOCKET"); if (connection) { + int prev_errno = errno; + errno = 0; fd = strtol(connection, &end, 0); - if (*end != '\0') + if (errno != 0 || connection == end || *end != '\0') return NULL; + errno = prev_errno; flags = fcntl(fd, F_GETFD); if (flags != -1) |
