--- src/lib/fte//dimens.c.orig	Sun Apr 25 18:03:19 1993
+++ src/lib/fte//dimens.c	Thu Sep 30 10:02:10 1999
@@ -21,9 +21,21 @@
 {
     int i;
-    char buf[BSIZE_SP];
+    char *buf;
+    if ( (buf = (char *) malloc(BSIZE_SP*sizeof(char))) == NULL)
+    {
+      fprintf(stderr,"lib:fte:dimns:dimstring:  malloc failed\n");
+      exit(1);
+    }
 
     if (!data || length < 1)
 	return NULL;
 
+    if (length > BSIZE_SP)
+    {
+      fprintf(stderr,"WARNING, lib:fte:dimns:dimstring: length=%d > BSIZE_SP=%d\n",
+	length,BSIZE_SP);
+      length = BSIZE_SP;
+    }
+
     buf[0] = '\0';
     for (i=0; i < length; i++) {
@@ -31,5 +43,5 @@
 	    (i < length - 1) ? "," : "");
     }
-    /* XXX Should I return a copy instead? */
+    
     return(buf);
 }
@@ -44,8 +56,21 @@
 {
     int i;
-    char buf[BSIZE_SP];
+    char *buf;          
+
+    if ( (buf = (char *) malloc(BSIZE_SP*sizeof(char))) == NULL)
+    {
+      fprintf(stderr,"lib:fte:dimns:indexstring:  malloc failed\n");
+      exit(1);
+    }
 
     if (!data || length < 1)
 	return NULL;
+
+    if (length > BSIZE_SP)
+    {
+      fprintf(stderr,"WARNING, lib:fte:dimns:indexstring: length=%d > BSIZE_SP=%d\n",
+        length,BSIZE_SP);
+      length = BSIZE_SP;
+    }
 
     buf[0] = '\0';
