----- Original Message -----
On Wed, May 25, 2011 at 09:34:57PM +0300, Mika Westerberg wrote:
> On Wed, May 25, 2011 at 10:09:40AM -0400, Dave Anderson wrote:
> >
> >
> > ----- Original Message -----
> > > Hello Dave,
> > >
> > > While I was investigating ARM support for CONFIG_SPARSEMEM, I noticed
> > > read_module_unwind_table in unwind_arm.c would call free(tbl->idx)
twice
> > > if(!readmem(idx_start, KVADDR, tbl->idx, idx, size,
> > > "module unwind index table", RETURN_ON_ERROR))
> > >
> > > I think you can remove free(tbl->idx) which just before "return
FALSE".
> > >
> > > Takuo
> >
> > The ARM code is maintained by the Jan and Mika, but you are correct.
> > I also note that it would do a free(NULL) in the case of a calloc()
> > failure just above that.
>
> Yeah, my bad. I'll send a patch for that asap.
Here is the patch. Hope I got it right this time.
Thanks,
MW
Queued for the next release.
Also, I plan to queue your other patch initializing machdep->max_physmem_bits
machdep->section_size_bits in arm_init(). It makes just as much sense to
put potentially-guessed values in them as it does to leave them set to 0.
Thanks,
Dave
diff --git a/unwind_arm.c b/unwind_arm.c
index 18fdad9..fd6ac65 100644
--- a/unwind_arm.c
+++ b/unwind_arm.c
@@ -185,8 +185,10 @@ init_kernel_unwind_table(void)
/* now read in the index table */
if (!readmem(idx_start, KVADDR, kernel_unwind_table->idx, idx_size,
- "master kernel unwind table", RETURN_ON_ERROR))
+ "master kernel unwind table", RETURN_ON_ERROR)) {
+ free(kernel_unwind_table->idx);
goto fail;
+ }
kernel_unwind_table->start = kernel_unwind_table->idx;
kernel_unwind_table->end = (struct unwind_idx *)
@@ -210,7 +212,6 @@ init_kernel_unwind_table(void)
return TRUE;
fail:
- free(kernel_unwind_table->idx);
free(kernel_unwind_table);
return FALSE;
}
@@ -283,7 +284,6 @@ read_module_unwind_table(struct unwind_table *tbl,
ulong addr)
fail:
FREEBUF(buf);
- free(tbl->idx);
return FALSE;
}
--
Crash-utility mailing list
Crash-utility(a)redhat.com
https://www.redhat.com/mailman/listinfo/crash-utility