summaryrefslogtreecommitdiff
path: root/tools/virtual.c
diff options
context:
space:
mode:
authorChris Wilson <chris@chris-wilson.co.uk>2014-08-26 18:30:17 +0100
committerChris Wilson <chris@chris-wilson.co.uk>2014-08-26 18:31:05 +0100
commit011f04ff8e9aca696e26ecef0e68132a24a9b094 (patch)
treef236c8ba1b4d61378e2e4678859ac815c38e5c80 /tools/virtual.c
parent016599783cf3e1a3e2362c82c8767a7398048db7 (diff)
intel-virtual-output: Fix invocation of strncpy()
Somebody (me) confused it with snprintf() and put the string length in the wrong location. Also note that strncpy() does not NUL terminate long strings. Reported-by: Zdenek Kabelac <zdenek.kabelac@gmail.com> Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Diffstat (limited to 'tools/virtual.c')
-rw-r--r--tools/virtual.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/tools/virtual.c b/tools/virtual.c
index 9b1912f8..b51c81a1 100644
--- a/tools/virtual.c
+++ b/tools/virtual.c
@@ -2387,8 +2387,10 @@ static int bumblebee_open(struct context *ctx)
}
addr.sun_family = AF_UNIX;
- strncpy(addr.sun_path, sizeof(addr.sun_path),
- optarg && *optarg ? optarg : "/var/run/bumblebee.socket");
+ strncpy(addr.sun_path,
+ optarg && *optarg ? optarg : "/var/run/bumblebee.socket",
+ sizeof(addr.sun_path)-1);
+ addr.sun_path[sizeof(addr.sun_path)-1] = '\0';
if (connect(fd, (struct sockaddr *)&addr, sizeof(addr)) < 0) {
DBG(X11, ("%s unable to create a socket: %d\n", __func__, errno));
goto err;