
2011/4/29 Eric Blake <eblake@redhat.com>:
* bootstrap.conf (gnulib_modules): Add getcwd-lgpl. * tests/commandtest.c (checkoutput): Drop unused cwd. * tests/commandhelper.c (main): Let getcwd malloc. * tests/testutils.c (virTestMain): Likewise. * tools/virsh.c (cmdPwd): Likewise. (virshCmds): Expose cmdPwd and cmdCd on mingw. ---
Oh, and now that gnulib getcwd-lgpl exists, we could use it to fix our uses of getcwd(NULL,0), followup coming later.
bootstrap.conf | 1 + tests/commandhelper.c | 7 ++++--- tests/commandtest.c | 4 ---- tests/testutils.c | 3 +-- tools/virsh.c | 34 ++++++++-------------------------- 5 files changed, 14 insertions(+), 35 deletions(-)
diff --git a/tests/testutils.c b/tests/testutils.c index 456a735..91035a2 100644 --- a/tests/testutils.c +++ b/tests/testutils.c @@ -478,7 +478,6 @@ int virtTestMain(int argc, int (*func)(void)) { int ret; - char cwd[PATH_MAX]; #if TEST_OOM int approxAlloc = 0; int n; @@ -491,7 +490,7 @@ int virtTestMain(int argc,
abs_srcdir = getenv("abs_srcdir"); if (!abs_srcdir) - abs_srcdir = getcwd(cwd, sizeof(cwd)); + abs_srcdir = getcwd(NULL, 0); if (!abs_srcdir) exit(EXIT_AM_HARDFAIL);
Now you have created a memory leak (not a critical one, that's true), because abs_srcdir can be malloc'ed and you missed to free it. ACK, with that memory leak fixed. Matthias