* linux-proc-maps.c (proc_maps_report): Don't leak LAST_FILE.
+2008-04-05 Roland McGrath <roland@redhat.com>
+
+ * linux-proc-maps.c (proc_maps_report): Don't leak LAST_FILE.
+
+ * dwfl_module_getdwarf.c (find_file): Always free build_id_bits.
+ Clear it after freeing.
+ * dwfl_module_report_build_id.c (dwfl_module_report_build_id): Likewise.
+
2008-03-26 Roland McGrath <roland@redhat.com>
* dwfl_module_getdwarf.c (load_symtab): Don't return success for
{
/* Clear any explicitly reported build ID, just in case it was wrong.
We'll fetch it from the file when asked. */
- if (mod->build_id_len > 0)
- free (mod->build_id_bits);
+ free (mod->build_id_bits);
+ mod->build_id_bits = NULL;
mod->build_id_len = 0;
}
}
/* Report build ID information for a module.
- Copyright (C) 2007 Red Hat, Inc.
+ Copyright (C) 2007, 2008 Red Hat, Inc.
This file is part of Red Hat elfutils.
Red Hat elfutils is free software; you can redistribute it and/or modify
memcpy (copy, bits, len);
}
- if (mod->build_id_len > 0)
- free (mod->build_id_bits);
+ free (mod->build_id_bits);
mod->build_id_bits = copy;
mod->build_id_len = len;
/* Standard libdwfl callbacks for debugging a live Linux process.
- Copyright (C) 2005, 2007 Red Hat, Inc.
+ Copyright (C) 2005, 2007, 2008 Red Hat, Inc.
This file is part of Red Hat elfutils.
Red Hat elfutils is free software; you can redistribute it and/or modify
{
if (last_file != NULL)
{
- if (INTUSE(dwfl_report_module) (dwfl, last_file, low, high) == NULL)
- {
- free (last_file);
- return true;
- }
+ Dwfl_Module *mod = INTUSE(dwfl_report_module) (dwfl, last_file,
+ low, high);
+ free (last_file);
last_file = NULL;
+ if (unlikely (mod == NULL))
+ return true;
}
return false;
}