On Fri, Dec 13, 2024 at 01:58:38PM -0800, Andrii Nakryiko wrote:

SNIP

> > +static int find_uprobes_trampoline(void **start, void **end)
> > +{
> > +       char line[128];
> > +       int ret = -1;
> > +       FILE *maps;
> > +
> > +       maps = fopen("/proc/self/maps", "r");
> > +       if (!maps) {
> > +               fprintf(stderr, "cannot open maps\n");
> > +               return -1;
> > +       }
> > +
> > +       while (fgets(line, sizeof(line), maps)) {
> > +               int m = -1;
> > +
> > +               /* We care only about private r-x mappings. */
> > +               if (sscanf(line, "%p-%p r-xp %*x %*x:%*x %*u %n", start, 
> > end, &m) != 2)
> > +                       continue;
> > +               if (m < 0)
> > +                       continue;
> > +               if (!strncmp(&line[m], TRAMP, sizeof(TRAMP)-1)) {
> > +                       ret = 0;
> > +                       break;
> > +               }
> > +       }
> 
> you could have used PROCMAP_QUERY ;)

true ;-) will check on that in new version

thanks,
jirka

> 
> > +
> > +       fclose(maps);
> > +       return ret;
> > +}
> > +
> 
> [...]

Reply via email to