Re: [PATCH 08/17] tracing/probes: Split [ku]probes_fetch_type_table

From: Masami Hiramatsu
Date: Mon Dec 09 2013 - 10:09:54 EST


(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@xxxxxxxxxxx


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/