fix reallocation memory in appendStringBuffer
[tedtools.git] / tmalloc.c
index 0d51e75..8b16322 100644 (file)
--- a/tmalloc.c
+++ b/tmalloc.c
@@ -320,8 +320,11 @@ appendStringBuffer( StringBuffer *state, char *string, int stringlen) {
                return state;
                                                                                                          
        while ( state->len - ( state->ptr - state->buf ) < stringlen + 1 ) {
+                       int     diff = state->ptr - state->buf;
+
                        state->len *= 2;
                        state->buf = (char*)mcrealloc( (void*)state->buf, state->len );
+                       state->ptr = state->buf + diff;
        }
 
        memcpy(state->ptr, string, stringlen);