Am Tue, 25 Aug 2015 17:09:40 +0200 schrieb Thomas Huth <h...@tuxfamily.org>:
> In the "Getting Started with Coccinelle - KVM edition" presentation > that has been held by Julia Lawall at the KVM forum 2015 (see the > slides at > http://events.linuxfoundation.org/sites/events/files/slides/tutorial_kvm_0.pdf), > she pointed out some bad return value checks in U-Boot that can be > detected with Coccinelle by using the following config file: > > @@ > identifier x,y; > identifier f; > statement S; > @@ > x = f(...); > ( > if (x < 0) S > | > if ( > - y > + x > < 0) S > ) > > This patch now fixes these issues. > > Signed-off-by: Thomas Huth <h...@tuxfamily.org> > --- > Note: I haven't tested this patch at all, so please review carefully. > I just wanted to let you know about these issues in case you haven't > been aware of them yet. And in case if somebody else already reported > them, please excuse the double information, I wasn't reading the > u-boot mailing list so far yet. > > diff -u -p a/board/samsung/origen/tools/mkorigenspl.c > b/board/samsung/origen/tools/mkorigenspl.c --- > a/board/samsung/origen/tools/mkorigenspl.c +++ > b/board/samsung/origen/tools/mkorigenspl.c @@ -52,7 +52,7 @@ int > main(int argc, char **argv) } > > ofd = open(argv[2], O_WRONLY | O_CREAT | O_TRUNC, FILE_PERM); > - if (ifd < 0) { > + if (ofd < 0) { > fprintf(stderr, "%s: Can't open %s: %s\n", > argv[0], argv[2], strerror(errno)); > if (ifd) > diff -u -p a/board/samsung/smdkv310/tools/mksmdkv310spl.c > b/board/samsung/smdkv310/tools/mksmdkv310spl.c --- > a/board/samsung/smdkv310/tools/mksmdkv310spl.c +++ > b/board/samsung/smdkv310/tools/mksmdkv310spl.c @@ -50,7 +50,7 @@ int > main(int argc, char **argv) } > > ofd = open(argv[2], O_WRONLY | O_CREAT | O_TRUNC, FILE_PERM); > - if (ifd < 0) { > + if (ofd < 0) { > fprintf(stderr, "%s: Can't open %s: %s\n", > argv[0], argv[2], strerror(errno)); > if (ifd) > diff -u -p a/drivers/hwmon/lm81.c b/drivers/hwmon/lm81.c > --- a/drivers/hwmon/lm81.c > +++ b/drivers/hwmon/lm81.c > @@ -90,7 +90,7 @@ int dtt_init_one(int sensor) > if (adr < 0) > return 1; > rev = dtt_read (sensor, DTT_REV); > - if (adr < 0) > + if (rev < 0) > return 1; > > debug ("DTT: Found LM81@%x Rev: %d\n", adr, rev); > diff -u -p a/tools/fit_check_sign.c b/tools/fit_check_sign.c > --- a/tools/fit_check_sign.c > +++ b/tools/fit_check_sign.c > @@ -75,7 +75,7 @@ int main(int argc, char **argv) > if (ffd < 0) > return EXIT_FAILURE; > kfd = mmap_fdt(cmdname, keyfile, 0, &key_blob, &ksbuf, > false); > - if (ffd < 0) > + if (kfd < 0) > return EXIT_FAILURE; > > image_set_host_blob(key_blob); > diff -u -p a/tools/mkexynosspl.c b/tools/mkexynosspl.c > --- a/tools/mkexynosspl.c > +++ b/tools/mkexynosspl.c > @@ -110,7 +110,7 @@ int main(int argc, char **argv) > } > > ofd = open(argv[of_index], O_WRONLY | O_CREAT | O_TRUNC, > FILE_PERM); > - if (ifd < 0) { > + if (ofd < 0) { > fprintf(stderr, "%s: Can't open %s: %s\n", > prog_name, argv[of_index], strerror(errno)); > exit(EXIT_FAILURE); ping ... now with maintainers on CC: :-) Regards, Thomas _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot