aboutsummaryrefslogtreecommitdiff
path: root/cad/spice/files/patch-an
blob: a61223c0a9c375dbaeb66985aa4ee9a0d8dc520e (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
--- 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';