rdp: Check for non-digits and errno in strtol call
authorBryce Harrington <bryce@osg.samsung.com>
Tue, 12 Jul 2016 00:02:44 +0000 (17:02 -0700)
committerBryce Harrington <bryce@osg.samsung.com>
Tue, 12 Jul 2016 21:24:50 +0000 (14:24 -0700)
Improve error checking for situations like RDP_FD=42foo, or where the
provided number is out of range.

Suggestion by Yong Bakos.

Signed-off-by: Bryce Harrington <bryce@osg.samsung.com>
Reviewed-by: Eric Engestrom <eric.engestrom@imgtec.com>
Reviewed-by: Yong Bakos <ybakos@humanoriented.com>
libweston/compositor-rdp.c

index 79f0687..53c7124 100644 (file)
@@ -1263,7 +1263,8 @@ rdp_backend_create(struct weston_compositor *compositor,
                }
 
                fd = strtoul(fd_str, &fd_tail, 10);
-               if (fd_tail == fd_str || rdp_peer_init(freerdp_peer_new(fd), b))
+               if (errno != 0 || fd_tail == fd_str || *fd_tail != '\0'
+                   || rdp_peer_init(freerdp_peer_new(fd), b))
                        goto err_output;
        }