*** lynx2-8-2/WWW/Library/Implementation/HTAAUtil.c Tue Jan 5 12:40:52 1999 --- lynx2-8-2p/WWW/Library/Implementation/HTAAUtil.c Tue Jan 5 13:06:42 1999 *************** *** 448,456 **** #define BUFFER_SIZE 1024 ! PRIVATE char buffer[BUFFER_SIZE + 1]; ! PRIVATE char *start_pointer = buffer; ! PRIVATE char *end_pointer = buffer; PRIVATE int in_soc = -1; /* PUBLIC HTAA_setupReader() --- 448,457 ---- #define BUFFER_SIZE 1024 ! PRIVATE size_t buffer_length; ! PRIVATE char *buffer = 0; ! PRIVATE char *start_pointer; ! PRIVATE char *end_pointer; PRIVATE int in_soc = -1; /* PUBLIC HTAA_setupReader() *************** *** 476,481 **** --- 477,496 ---- int, length, int, soc) { + if (!start_of_headers) + length = 0; /* initialize length (is this reached at all?) */ + if (buffer == NULL) { /* first call? */ + buffer_length = length; + if (buffer_length < BUFFER_SIZE) /* would fall below BUFFER_SIZE? */ + buffer_length = BUFFER_SIZE; + buffer = (char*)malloc((size_t)(sizeof(char)*(buffer_length + 1))); + } + else if (length > buffer_length) { /* need more space? */ + buffer_length = length; + buffer = (char*)realloc((char*)buffer, + (size_t)(sizeof(char)*(buffer_length + 1))); + } + if (buffer == NULL) outofmem(__FILE__, "HTAA_setupReader"); start_pointer = buffer; if (start_of_headers) { strncpy(buffer, start_of_headers, length);