diff options
author | Chris Wilson <chris@chris-wilson.co.uk> | 2014-08-26 18:30:17 +0100 |
---|---|---|
committer | Chris Wilson <chris@chris-wilson.co.uk> | 2014-08-26 18:31:05 +0100 |
commit | 011f04ff8e9aca696e26ecef0e68132a24a9b094 (patch) | |
tree | f236c8ba1b4d61378e2e4678859ac815c38e5c80 /tools/virtual.c | |
parent | 016599783cf3e1a3e2362c82c8767a7398048db7 (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.c | 6 |
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; |