On Wed,  5 Nov 2014 17:40:18 +0200
Imran Zaman <[email protected]> wrote:

> Signed-off-by: Imran Zaman <[email protected]>
> ---
>  src/scanner.c        | 4 +++-
>  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;
>               }

This is not a library function, so restoring errno here is not
required, but ok.

> 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)

Nice, pushed.


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

Reply via email to