Move local variables to heap

We were already modifing this function so it would run in the
local development environment, so let's just do the stack fixes
here are well.  It's all simple enough.
This commit is contained in:
Brian Behlendorf 2010-06-29 13:08:36 -07:00
parent 43088d22ad
commit 82360d2362
2 changed files with 15 additions and 5 deletions

View File

@ -1,6 +1,8 @@
From: Brian Behlendorf <behlendorf1@llnl.gov> From: Brian Behlendorf <behlendorf1@llnl.gov>
Subject: [PATCH] linux ztest Subject: [PATCH] linux ztest
Minor changes to ztest for this environment. Minor changes to ztest for this environment. These including
updating ztest to run in the local development tree, as well
as relocating some local variables in this function to the heap.
Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov> Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>

View File

@ -4820,11 +4820,15 @@ static void
ztest_run_zdb(char *pool) ztest_run_zdb(char *pool)
{ {
int status; int status;
char bin[MAXPATHLEN + MAXNAMELEN + 20]; char *bin;
char zdb[MAXPATHLEN + MAXNAMELEN + 20]; char *zdb;
char zbuf[1024]; char *zbuf;
FILE *fp; FILE *fp;
bin = umem_alloc(MAXPATHLEN + MAXNAMELEN + 20, UMEM_NOFAIL);
zdb = umem_alloc(MAXPATHLEN + MAXNAMELEN + 20, UMEM_NOFAIL);
zbuf = umem_alloc(1024, UMEM_NOFAIL);
/* Designed to be run exclusively in the development tree */ /* Designed to be run exclusively in the development tree */
VERIFY(realpath(getexecname(), bin) != NULL); VERIFY(realpath(getexecname(), bin) != NULL);
strstr(bin, "/ztest/")[0] = '\0'; strstr(bin, "/ztest/")[0] = '\0';
@ -4849,13 +4853,17 @@ ztest_run_zdb(char *pool)
status = pclose(fp); status = pclose(fp);
if (status == 0) if (status == 0)
return; goto out;
ztest_dump_core = 0; ztest_dump_core = 0;
if (WIFEXITED(status)) if (WIFEXITED(status))
fatal(0, "'%s' exit code %d", zdb, WEXITSTATUS(status)); fatal(0, "'%s' exit code %d", zdb, WEXITSTATUS(status));
else else
fatal(0, "'%s' died with signal %d", zdb, WTERMSIG(status)); fatal(0, "'%s' died with signal %d", zdb, WTERMSIG(status));
out:
umem_free(bin, MAXPATHLEN + MAXNAMELEN + 20);
umem_free(zdb, MAXPATHLEN + MAXNAMELEN + 20);
umem_free(zbuf, 1024);
} }
static void static void