提交 745c3e79 编写于 作者: G Guido Günther

virnetsockettest: Use a temporary directory in /tmp

to avoid exceeding UNIX_PATH_MAX
上级 6bab30d0
......@@ -202,16 +202,18 @@ static int testSocketUNIXAccept(const void *data ATTRIBUTE_UNUSED)
int ret = -1;
char *path;
if (progname[0] == '/') {
if (virAsprintf(&path, "%s-test.sock", progname) < 0) {
virReportOOMError();
goto cleanup;
}
} else {
if (virAsprintf(&path, "%s/%s-test.sock", abs_builddir, progname) < 0) {
virReportOOMError();
goto cleanup;
}
char *tmpdir;
char template[] = "/tmp/libvirt_XXXXXX";
tmpdir = mkdtemp(template);
if (tmpdir == NULL) {
virReportSystemError(errno, "%s",
_("Failed to create temporary directory"));
goto cleanup;
}
if (virAsprintf(&path, "%s/test.sock", tmpdir) < 0) {
virReportOOMError();
goto cleanup;
}
if (virNetSocketNewListenUNIX(path, 0700, -1, getgid(), &lsock) < 0)
......@@ -239,6 +241,8 @@ cleanup:
VIR_FREE(path);
virNetSocketFree(lsock);
virNetSocketFree(ssock);
if (tmpdir)
rmdir(tmpdir);
return ret;
}
......@@ -251,16 +255,18 @@ static int testSocketUNIXAddrs(const void *data ATTRIBUTE_UNUSED)
int ret = -1;
char *path;
if (progname[0] == '/') {
if (virAsprintf(&path, "%s-test.sock", progname) < 0) {
virReportOOMError();
goto cleanup;
}
} else {
if (virAsprintf(&path, "%s/%s-test.sock", abs_builddir, progname) < 0) {
virReportOOMError();
goto cleanup;
}
char *tmpdir;
char template[] = "/tmp/libvirt_XXXXXX";
tmpdir = mkdtemp(template);
if (tmpdir == NULL) {
virReportSystemError(errno, "%s",
_("Failed to create temporary directory"));
goto cleanup;
}
if (virAsprintf(&path, "%s/test.sock", tmpdir) < 0) {
virReportOOMError();
goto cleanup;
}
if (virNetSocketNewListenUNIX(path, 0700, -1, getgid(), &lsock) < 0)
......@@ -317,6 +323,8 @@ cleanup:
virNetSocketFree(lsock);
virNetSocketFree(ssock);
virNetSocketFree(csock);
if (tmpdir)
rmdir(tmpdir);
return ret;
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册