On Mon, 23 Sep 2019 20:30:35 +0200, Ahmad Fatoum wrote: > On 9/20/19 2:44 PM, Michael Tretter wrote: > > The list of boot entries can contain items that are not blspec entries. > > For example, the bootchooser also adds an item to this list. Therefore, > > blspec cannot unconditionally interpret entries as blspec entries. > > > > The error is reproduced by listing the boot entries with the bootchooser > > and a rootfs with blspec entries, e.g.: > > > > boot -l bootchooser /mnt/nfs > > > > Check if a bootentry is a blspec entry by testing if the boot function > > is blspec_boot. > > > > Reported-by: Thomas Hämmerle <Thomas.Haemmerle@xxxxxxxxxxxxxx> > > Signed-off-by: Michael Tretter <m.tretter@xxxxxxxxxxxxxx> > > --- > > common/blspec.c | 10 ++++++++++ > > 1 file changed, 10 insertions(+) > > > > diff --git a/common/blspec.c b/common/blspec.c > > index 66e5033e35..3b148e2ab4 100644 > > --- a/common/blspec.c > > +++ b/common/blspec.c > > @@ -228,6 +228,14 @@ static struct blspec_entry *blspec_entry_open(struct bootentries *bootentries, > > return entry; > > } > > > > +/* > > + * is_blspec_entry - check if a bootentry is a blspec entry > > + */ > > +static inline bool is_blspec_entry(struct bootentry *entry) > > +{ > > + return entry.boot == blspec_boot; > > entry is a pointer. This doesn't compile: > > ./common/blspec.c:314:14: error: 'entry' is a pointer; did you mean to use '->'? > 314 | return entry.boot == blspec_boot; I am confused. I thought that I compiled and tested the patch. I will send a v2 and try to find the problem in my process. Michael > > > +} > > + > > /* > > * blspec_have_entry - check if we already have an entry with > > * a certain path > > @@ -238,6 +246,8 @@ static int blspec_have_entry(struct bootentries *bootentries, const char *path) > > struct blspec_entry *e; > > > > list_for_each_entry(be, &bootentries->entries, list) { > > + if (!is_blspec_entry(be)) > > + continue; > > e = container_of(be, struct blspec_entry, entry); > > if (e->configpath && !strcmp(e->configpath, path)) > > return 1; > > > _______________________________________________ barebox mailing list barebox@xxxxxxxxxxxxxxxxxxx http://lists.infradead.org/mailman/listinfo/barebox