Messages in this thread |  | | Date | Tue, 10 Dec 2013 00:09:36 +0900 | From | Masami Hiramatsu <> | Subject | Re: [PATCH 08/17] tracing/probes: Split [ku]probes_fetch_type_table |
| |
(2013/12/09 15:19), Namhyung Kim wrote: > @@ -398,21 +376,21 @@ static const struct fetch_type *find_fetch_type(const char *type) > > switch (bs) { > case 8: > - return find_fetch_type("u8"); > + return find_fetch_type("u8", ftbl); > case 16: > - return find_fetch_type("u16"); > + return find_fetch_type("u16", ftbl); > case 32: > - return find_fetch_type("u32"); > + return find_fetch_type("u32", ftbl); > case 64: > - return find_fetch_type("u64"); > + return find_fetch_type("u64", ftbl); > default: > goto fail; > } > } > > - for (i = 0; i < ARRAY_SIZE(fetch_type_table); i++) > - if (strcmp(type, fetch_type_table[i].name) == 0) > - return &fetch_type_table[i]; > + for (i = 0; i < NR_FETCH_TYPES; i++)
Hmm, I consider this should use correct length of given array. Thus, I'd like recommend you to do; giving the size of fetch_type_table, or define *probe_fetch_type_table with NR_FETCH_TYPES size, or introduce a gatekeeper, e.g. special terminator entry for initializing.
> +/* Fetch type information table */ > +const struct fetch_type uprobes_fetch_type_table[] = {
For example, here if I see the NR_FETCH_TYPES in above [], I can ensure the table has at least that size (and if there is a space, it will be filled with zero, in that case, we just need to add a checking fetch_type_table[i].name != NULL).
Thank you,
-- Masami HIRAMATSU IT Management Research Dept. Linux Technology Center Hitachi, Ltd., Yokohama Research Laboratory E-mail: masami.hiramatsu.pt@hitachi.com
|  |