John Snow <js...@redhat.com> writes: > Trivial: this array should be allocated to have ID_MAX entries always. > Otherwise if someone were to forget to expand this table, the assertion > in the id generator won't actually trigger; it will read junk data.
You mean this one: assert(id < ID_MAX); The assertion is crap, because it fails to protect array access id_subsys_str[id]. Here's one that does: assert(0 <= id && id < ARRAY_SIZE(id_subsys_str)); > Signed-off-by: John Snow <js...@redhat.com> > --- > util/id.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/util/id.c b/util/id.c > index bcc64d8..b7ca4d2 100644 > --- a/util/id.c > +++ b/util/id.c > @@ -29,7 +29,7 @@ bool id_wellformed(const char *id) > > #define ID_SPECIAL_CHAR '#' > > -static const char *const id_subsys_str[] = { > +static const char *const id_subsys_str[ID_MAX] = { > [ID_QDEV] = "qdev", > [ID_BLOCK] = "block", > };