changeset 8957:4dffbc5d5dc7

(from, labels, data): Use MAX_DATA_LEN as length. (main): Use fgets, not gets.
author Richard M. Stallman <rms@gnu.org>
date Wed, 21 Sep 1994 03:23:32 +0000
parents 390019f3ab08
children 24e6be28b6ea
files lib-src/b2m.c
diffstat 1 files changed, 6 insertions(+), 8 deletions(-) [+]
line wrap: on
line diff
--- a/lib-src/b2m.c	Wed Sep 21 00:59:22 1994 +0000
+++ b/lib-src/b2m.c	Wed Sep 21 03:23:32 1994 +0000
@@ -15,9 +15,6 @@
  *   Mon Nov 7 15:54:06 PDT 1988
  */
 
-/* Serious bug: This program uses `gets', which is intrinsically
-   unreliable--long lines will cause crashes.
-   Someone should fix this program not to use `gets'.  */
 #include <stdio.h>
 #include <time.h>
 #include <sys/types.h>
@@ -37,9 +34,11 @@
 #define FALSE (0)
 #endif
 
+#define MAX_DATA_LEN 256   /* size for from[], labels[], and data[] arrays */
+
 int header = FALSE, printing;
 time_t ltoday;
-char from[256], labels[256], data[256], *p, *today;
+char from[MAX_DATA_LEN], labels[MAX_DATA_LEN], data[MAX_DATA_LEN], *p, *today;
 
 main (argc, argv)
      int argc;
@@ -58,8 +57,7 @@
   ltoday = time (0);
   today = ctime (&ltoday);
 
-  /* BUG!  Must not use gets in a reliable program!  */
-  if (gets (data))
+  if (fgets (data, MAX_DATA_LEN, stdin))
     {
       if (strncmp (data, "BABYL OPTIONS:", 14))
 	{
@@ -74,7 +72,7 @@
   if (printing)
     puts (data);
 
-  while (gets (data))
+  while (fgets (data, MAX_DATA_LEN, stdin))
     {
 
 #if 0
@@ -94,7 +92,7 @@
       if (!strcmp (data, "\037\f"))
 	{
 	  /* save labels */
-	  gets (data);
+	  fgets (data, MAX_DATA_LEN, stdin);
 	  p = strtok (data, " ,\r\n\t");
 	  strcpy (labels, "X-Babyl-Labels: ");