On Mon, Jun 03, 2019 at 09:05:35PM +0200, Ahmad Fatoum wrote: > fb_open returns a pointer and doesn't populate errno, which will > results in a stale errno being evaluated by perror() on failure. > Fix this by populating errno manually at call sites. > > While at it, correct the typo in the prefix passed to perror(). > > Signed-off-by: Ahmad Fatoum <a.fatoum@xxxxxxxxxxxxxx> > --- > commands/fbtest.c | 5 +++-- > commands/splash.c | 5 +++-- > 2 files changed, 6 insertions(+), 4 deletions(-) > > diff --git a/commands/fbtest.c b/commands/fbtest.c > index e5dd8ba7fabf..2c589f77d3b8 100644 > --- a/commands/fbtest.c > +++ b/commands/fbtest.c > @@ -271,8 +271,9 @@ static int do_fbtest(int argc, char *argv[]) > > sc = fb_open(fbdev); > if (IS_ERR(sc)) { > - perror("fd_open"); > - return PTR_ERR(sc); > + errno = PTR_ERR(sc); > + perror("fb_open"); > + return errno; > } I would also prefer a printf() message along with a strerror(). Setting a global variable when the result is only used in this function looks odd. Sascha -- Pengutronix e.K. | | Industrial Linux Solutions | http://www.pengutronix.de/ | Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0 | Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 | _______________________________________________ barebox mailing list barebox@xxxxxxxxxxxxxxxxxxx http://lists.infradead.org/mailman/listinfo/barebox