freebsd-ports/lang/bwbasic/files/patch-ab
1997-01-16 00:58:10 +00:00

45 lines
1.4 KiB
Plaintext

--- ../../foo/bwbasic-2.20/bwb_dio.c Sun Nov 26 09:02:18 1995
+++ bwb_dio.c Thu Jan 16 11:10:58 1997
@@ -90,7 +90,6 @@
{
FILE *fp;
struct exp_ese *e;
- int previous_buffer;
char atbuf[ MAXSTRINGSIZE + 1 ];
char first[ MAXSTRINGSIZE + 1 ];
char devname[ MAXSTRINGSIZE + 1 ];
@@ -98,7 +97,6 @@
/* initialize */
mode = req_devnumber = rlen = -1;
- previous_buffer = FALSE;
/* get the first expression element up to comma or whitespace */
@@ -435,7 +433,15 @@
sprintf( bwb_ebuf, "in bwb_open(): using previously closed file (and buffer)" );
bwb_debug( bwb_ebuf );
#endif
- previous_buffer = TRUE;
+ /*
+ * Previous code assumed that buffer was always valid, and
+ * always the right size. (MJS)
+ */
+ if (dev_table[ req_devnumber ].buffer != NULL)
+ {
+ free (dev_table[ req_devnumber ].buffer);
+ dev_table[ req_devnumber ].buffer = NULL;
+ }
}
if ( ( dev_table[ req_devnumber ].mode != DEVMODE_CLOSED ) &&
@@ -512,7 +518,7 @@
/* allocate a character buffer for random access */
- if (( mode == DEVMODE_RANDOM ) && ( previous_buffer != TRUE ))
+ if ( mode == DEVMODE_RANDOM )
{
/* Revised to CALLOC pass-thru call by JBV */
if ( ( dev_table[ req_devnumber ].buffer = CALLOC( rlen + 1, 1, "bwb_open" )) == NULL )