* [PATCH 07/20] libdtrace: reuse the built-in module range line buffer
@ 2026-10-30 19:36 Kris Van Hees
0 siblings, 0 replies; only message in thread
From: Kris Van Hees @ 2026-10-30 19:36 UTC (permalink / raw)
To: dtrace, dtrace-devel
---
libdtrace/dt_module.c | 9 ++++++---
1 file changed, 6 insertions(+), 3 deletions(-)
diff --git a/libdtrace/dt_module.c b/libdtrace/dt_module.c
index bd92d126..6868268e 100644
--- a/libdtrace/dt_module.c
+++ b/libdtrace/dt_module.c
@@ -1588,6 +1588,8 @@ typedef struct dt_kasstate {
GElf_Addr mod_saddr, mod_eaddr;
char mod_name[PATH_MAX];
FILE *rfp;
+ char *line;
+ size_t line_n;
int kind;
int kernel_flag;
@@ -1630,8 +1632,7 @@ dt_kasstate_new(dtrace_hdl_t *dtp, int kind)
static char *
dt_kasstate_modname(dt_kasstate_t *state, GElf_Addr addr, const char *name)
{
- char *line = NULL;
- size_t line_n = 0;
+ char *line;
/* Nothing to be done if there is no modules.builtin.ranges file. */
if (state->rfp == NULL)
@@ -1658,9 +1659,10 @@ dt_kasstate_modname(dt_kasstate_t *state, GElf_Addr addr, const char *name)
* is found that either contains the address or goes beyond.
*/
while (addr > state->mod_eaddr) {
- if (getline(&line, &line_n, state->rfp) == -1)
+ if (getline(&state->line, &state->line_n, state->rfp) == -1)
break;
+ line = state->line;
if (sscanf(line, "%*s %lx-%lx %[A-Za-z0-9_ ]",
&state->mod_saddr, &state->mod_eaddr,
state->mod_name) == 3) {
@@ -2051,6 +2053,7 @@ dtrace_update(dtrace_hdl_t *dtp)
if (state->rfp)
fclose(state->rfp);
+ free(state->line);
dt_free(dtp, state);
}
--
2.52.0
^ permalink raw reply related [flat|nested] only message in thread
only message in thread, other threads:[~2026-10-30 19:38 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-10-30 19:36 [PATCH 07/20] libdtrace: reuse the built-in module range line buffer Kris Van Hees
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.