Print this page
3992 mdb ::stacks segv
@@ -19,10 +19,11 @@
* CDDL HEADER END
*/
/*
* Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2013, Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
*/
#include <mdb/mdb_modapi.h>
#include <mdb/mdb_ctf.h>
@@ -338,10 +339,12 @@
}
if (stacks_array != NULL)
mdb_free(stacks_array,
stacks_array_size * sizeof (*stacks_array));
+ mdb_free(stacks_hash, STACKS_HSIZE * sizeof (*stacks_hash));
+
} else if (stacks_array != NULL) {
for (idx = 0; idx < stacks_array_size; idx++) {
if ((cur = stacks_array[idx]) != NULL) {
while ((next = cur->se_dup) != NULL) {
cur->se_dup = next->se_dup;
@@ -358,10 +361,12 @@
stacks_findstack_cleanup();
stacks_array_size = 0;
stacks_state = STACKS_STATE_CLEAN;
+ stacks_hash = NULL;
+ stacks_array = NULL;
}
/*ARGSUSED*/
int
stacks_thread_cb(uintptr_t addr, const void *ignored, void *cbarg)