Hi Lucas, On Tue, Aug 08, 2017 at 09:51:54AM +0200, Lucas Stach wrote: > Am Montag, den 07.08.2017, 18:10 -0400 schrieb Gaël PORTAY: > > The getc function may return an errno code if an error happens. > > > > This patch prevents readline from printing a non printable character and > > from looping to infinity and beyong. > > > > Signed-off-by: Gaël PORTAY <gael.portay@xxxxxxxxxxxxxxxxxxxx> > > --- > > lib/readline_simple.c | 2 ++ > > 1 file changed, 2 insertions(+) > > > > diff --git a/lib/readline_simple.c b/lib/readline_simple.c > > index c4d3d240e..1283c9602 100644 > > --- a/lib/readline_simple.c > > +++ b/lib/readline_simple.c > > @@ -58,6 +58,8 @@ int readline (const char *prompt, char *line, int len) > > > > for (;;) { > > c = getchar(); > > + if (c < 0) > > + return (-1); > > I don't like made up error codes. Is there any reason why we couldn't > just pass through the negative error code from getchar? > The thing here is that getchar() may return an error, and that error is not tested. This causes readline to print the character 0xea (-EINVAL) which is not printable. Maybe another solutions would be to print the errno string and continue; or to return the number of characters already read. Regards, Gaël _______________________________________________ barebox mailing list barebox@xxxxxxxxxxxxxxxxxxx http://lists.infradead.org/mailman/listinfo/barebox