[PATCH 1/1] ubifs: do not decide upon uninitialized variable

Chris Packham judge.packham at gmail.com
Sun Dec 27 08:38:54 CET 2020


On Sat, 26 Dec 2020, 8:34 PM Heinrich Schuchardt, <xypron.glpk at gmx.de>
wrote:

> Am 26. Dezember 2020 08:08:52 MEZ schrieb Chris Packham <
> judge.packham at gmail.com>:
> >(note replying on mobile device only code access is via git.denx.de)
> >
> >On Sat, 26 Dec 2020, 3:19 AM Heinrich Schuchardt, <xypron.glpk at gmx.de>
> >wrote:
> >
> >> Before 'if (err)' we have to initialize the variable otherwise we use
> >a
> >> random value from the stack.
> >>
> >> Signed-off-by: Heinrich Schuchardt <xypron.glpk at gmx.de>
> >> ---
> >>
> >
> >In all the cases below err might be uninitialised because the code that
> >would otherwise initialise it has been conditionally excluded with
> >#ifndef
> >__UBOOT__. I wonder if we could do something cleaner by making
> >dbg_leb_change() etc do something suitable (return 0 or -Esomething).
>
> Why would that be cleaner?
>

It would keep the deviations to the upstream UBIFS code to a minimum. It's
not too hard to ignore the '= 0' when syncing with upstream but it'd also
be easy to miss and we'd have to redo this patch. Of course this is all
hypothetical and my opinion carries little weight so I'm more than happy to
be ignored if Tom wants to apply this as is.


>
> Best regards
>
> Heinrich
>
> >
> > fs/ubifs/io.c | 8 ++++----
> >>  1 file changed, 4 insertions(+), 4 deletions(-)
> >>
> >> diff --git a/fs/ubifs/io.c b/fs/ubifs/io.c
> >> index eb14b89544..9962cbe7eb 100644
> >> --- a/fs/ubifs/io.c
> >> +++ b/fs/ubifs/io.c
> >> @@ -114,7 +114,7 @@ int ubifs_leb_read(const struct ubifs_info *c,
> >int
> >> lnum, void *buf, int offs,
> >>  int ubifs_leb_write(struct ubifs_info *c, int lnum, const void *buf,
> >int
> >> offs,
> >>                     int len)
> >>  {
> >> -       int err;
> >> +       int err = 0;
> >>
> >>         ubifs_assert(!c->ro_media && !c->ro_mount);
> >>         if (c->ro_error)
> >> @@ -136,7 +136,7 @@ int ubifs_leb_write(struct ubifs_info *c, int
> >lnum,
> >> const void *buf, int offs,
> >>
> >>  int ubifs_leb_change(struct ubifs_info *c, int lnum, const void
> >*buf, int
> >> len)
> >>  {
> >> -       int err;
> >> +       int err = 0;
> >>
> >>         ubifs_assert(!c->ro_media && !c->ro_mount);
> >>         if (c->ro_error)
> >> @@ -158,7 +158,7 @@ int ubifs_leb_change(struct ubifs_info *c, int
> >lnum,
> >> const void *buf, int len)
> >>
> >>  int ubifs_leb_unmap(struct ubifs_info *c, int lnum)
> >>  {
> >> -       int err;
> >> +       int err = 0;
> >>
> >>         ubifs_assert(!c->ro_media && !c->ro_mount);
> >>         if (c->ro_error)
> >> @@ -179,7 +179,7 @@ int ubifs_leb_unmap(struct ubifs_info *c, int
> >lnum)
> >>
> >>  int ubifs_leb_map(struct ubifs_info *c, int lnum)
> >>  {
> >> -       int err;
> >> +       int err = 0;
> >>
> >>         ubifs_assert(!c->ro_media && !c->ro_mount);
> >>         if (c->ro_error)
> >> --
> >> 2.29.2
> >>
> >>
>
>


More information about the U-Boot mailing list