wayland-client: Require base 10 for WAYLAND_SOCKET, explicitly
authorBryce Harrington <bryce@osg.samsung.com>
Fri, 8 Jul 2016 23:42:30 +0000 (16:42 -0700)
committerDaniel Stone <daniels@collabora.com>
Mon, 21 Nov 2016 11:35:15 +0000 (11:35 +0000)
The third arg to strtol() specifies the base to assume for the number.
When 0 is passed, as is currently done in wayland-client.c, hexadecimal
and octal numbers are permitted and automatically detected and
converted.

I can find no indication that we would ever expect use of hexadecimal or
octal for socket fd's.  So be explicit about what base we're assuming
here and avoid any potential surprises.

Signed-off-by: Bryce Harrington <bryce@osg.samsung.com>
Reviewed-by: Yong Bakos <ybakos@humanoriented.com>
Reviewed-by: Daniel Stone <daniels@collabora.com>
src/wayland-client.c

index 03c087a..3d7361e 100644 (file)
@@ -1006,7 +1006,7 @@ wl_display_connect(const char *name)
        if (connection) {
                int prev_errno = errno;
                errno = 0;
-               fd = strtol(connection, &end, 0);
+               fd = strtol(connection, &end, 10);
                if (errno != 0 || connection == end || *end != '\0')
                        return NULL;
                errno = prev_errno;