Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/checkpoint-restore/criu.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrei Vagin <avagin@virtuozzo.com>2017-03-30 22:00:57 +0300
committerAndrei Vagin <avagin@virtuozzo.com>2017-04-11 08:59:16 +0300
commit5a7b90b5957049c6dd2b45e4504bbae72b642e5a (patch)
tree21f5e454d72411435f4abfb82d504f2575aab3b9 /test/zdtm/static/sk-unix-unconn.c
parent8abb4a7f7fb339573e41ae17e25382aa883e7743 (diff)
zdtm/unix: add zero characters into a socket address
An abstract name can contain zero characters. Signed-off-by: Andrei Vagin <avagin@virtuozzo.com>
Diffstat (limited to 'test/zdtm/static/sk-unix-unconn.c')
-rw-r--r--test/zdtm/static/sk-unix-unconn.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/test/zdtm/static/sk-unix-unconn.c b/test/zdtm/static/sk-unix-unconn.c
index 8e600130d..abf59e39b 100644
--- a/test/zdtm/static/sk-unix-unconn.c
+++ b/test/zdtm/static/sk-unix-unconn.c
@@ -12,7 +12,7 @@ const char *test_author = "Vagin Andrew <avagin@parallels.com>";
int main(int argc, char ** argv)
{
int sk, skc;
- int ret;
+ int ret, len;
char path[PATH_MAX];
struct sockaddr_un addr;
socklen_t addrlen;
@@ -31,12 +31,13 @@ int main(int argc, char ** argv)
return 1;
}
- snprintf(path, sizeof(path), "X/zdtm-%s-%d", argv[0], getpid());
+ len = snprintf(path, sizeof(path), "X/zdtm-%s-%d/X", argv[0], getpid());
addr.sun_family = AF_UNIX;
strncpy(addr.sun_path, path, sizeof(addr.sun_path));
- addrlen = sizeof(addr.sun_family) + strlen(path);
+ addrlen = sizeof(addr.sun_family) + len;
addr.sun_path[0] = 0;
+ addr.sun_path[len - 1] = 0;
ret = bind(sk, (struct sockaddr *) &addr, addrlen);
if (ret) {