Check fgets(3) return value
When fgets() function fails, contents of the buffer is undefined. That
is, fgets() return value needs to be checked, to avoid undefined behavior.
Signed-off-by: Dmitry V. Levin <ldv@altlinux.org>
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
diff --git a/debugfs/debugfs.c b/debugfs/debugfs.c
index 190c4b7..d701615 100644
--- a/debugfs/debugfs.c
+++ b/debugfs/debugfs.c
@@ -789,7 +789,8 @@
sprintf(buf, format, *val);
printf("%30s [%s] ", prompt, buf);
- fgets(buf, sizeof(buf), stdin);
+ if (!fgets(buf, sizeof(buf), stdin))
+ return;
if (buf[strlen (buf) - 1] == '\n')
buf[strlen (buf) - 1] = '\0';
if (!buf[0])
@@ -810,7 +811,8 @@
sprintf(buf, format, *val);
printf("%30s [%s] ", prompt, buf);
- fgets(buf, sizeof(buf), stdin);
+ if (!fgets(buf, sizeof(buf), stdin))
+ return;
if (buf[strlen (buf) - 1] == '\n')
buf[strlen (buf) - 1] = '\0';
if (!buf[0])
@@ -831,7 +833,8 @@
sprintf(buf, format, *val);
printf("%30s [%s] ", prompt, buf);
- fgets(buf, sizeof(buf), stdin);
+ if (!fgets(buf, sizeof(buf), stdin))
+ return;
if (buf[strlen (buf) - 1] == '\n')
buf[strlen (buf) - 1] = '\0';
if (!buf[0])