Am Dienstag, den 08.08.2017, 11:20 -0400 schrieb Gaël PORTAY: > 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. So why wouldn't the following fix the issue? signed char c; if (c < 0) return c; Regards, Lucas _______________________________________________ barebox mailing list barebox@xxxxxxxxxxxxxxxxxxx http://lists.infradead.org/mailman/listinfo/barebox