summaryrefslogtreecommitdiff
path: root/usr/src
diff options
context:
space:
mode:
Diffstat (limited to 'usr/src')
-rw-r--r--usr/src/cmd/zdb/zdb.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/usr/src/cmd/zdb/zdb.c b/usr/src/cmd/zdb/zdb.c
index 6bed2ff2f9..7c3ac73706 100644
--- a/usr/src/cmd/zdb/zdb.c
+++ b/usr/src/cmd/zdb/zdb.c
@@ -1056,7 +1056,6 @@ static void
dump_history(spa_t *spa)
{
nvlist_t **events = NULL;
- char buf[SPA_MAXBLOCKSIZE];
uint64_t resid, len, off = 0;
uint_t num = 0;
int error;
@@ -1065,12 +1064,14 @@ dump_history(spa_t *spa)
char tbuf[30];
char internalstr[MAXPATHLEN];
+ char *buf = umem_alloc(SPA_MAXBLOCKSIZE, UMEM_NOFAIL);
do {
- len = sizeof (buf);
+ len = SPA_MAXBLOCKSIZE;
if ((error = spa_history_get(spa, &off, &len, buf)) != 0) {
(void) fprintf(stderr, "Unable to read history: "
"error %d\n", error);
+ umem_free(buf, SPA_MAXBLOCKSIZE);
return;
}
@@ -1079,6 +1080,7 @@ dump_history(spa_t *spa)
off -= resid;
} while (len != 0);
+ umem_free(buf, SPA_MAXBLOCKSIZE);
(void) printf("\nHistory:\n");
for (int i = 0; i < num; i++) {