Index: build_in.c
===================================================================
RCS file: /disk2/cvs/glimpse/index/build_in.c,v
retrieving revision 1.2
retrieving revision 1.3
diff -r1.2 -r1.3
1657c1657,1658
< 		    if (merge_len > 0) {
---
> 		    /* prevent buffer overflows ; will we miss any hits? */	
> 		    if ((merge_len > 0)&&(merge_len < REAL_INDEX_BUF - 6)) {
1692a1694,1695
> 				if (merge_len > REAL_INDEX_BUF - 3*8*sizeof(int) - 1) 
> 					break;
1731a1735,1739
> 
> 				 /* Prevent buffer overflow; miss hits? */
> 				if (merge_len > REAL_INDEX_BUF - 3) 
> 					break;
> 
1737a1746,1750
> 
> 				 /* Prevent buffer overflow; miss hits? */
> 				if (merge_len > REAL_INDEX_BUF - 2) 
> 					break;
> 
1769c1782
<                         while(dest_index_buf[bdx2]>0) merge_index_buf[bdx++] = dest_index_buf[bdx2++];  /* '\n' gets copied */
---
>                         while((dest_index_buf[bdx2]>0)&&(bdx2<REAL_INDEX_BUF-1)) merge_index_buf[bdx++] = dest_index_buf[bdx2++];  /* '\n' gets copied */
2030c2043
< 	    while((j<REAL_INDEX_BUF) && (src_index_buf[j] != '\n') && (src_index_buf[j] != '\0')) {
---
> 	    while((j<REAL_INDEX_BUF-2) && (src_index_buf[j] != '\n') && (src_index_buf[j] != '\0')) {
2134c2147
< 		    while ((j<REAL_INDEX_BUF) && (src_index_buf[j] != '\n') && (src_index_buf[j] != '\0')) {
---
> 		    while ((j<REAL_INDEX_BUF-3) && (src_index_buf[j] != '\n') && (src_index_buf[j] != '\0')) {
