diff options
Diffstat (limited to 'usr/src')
-rw-r--r-- | usr/src/cmd/zdb/zdb.c | 6 |
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++) { |