diff --git a/src/dbuf.c b/src/dbuf.c index 8cf6c80..c5cd1ce 100644 --- a/src/dbuf.c +++ b/src/dbuf.c @@ -50,7 +50,10 @@ uc_dbuf_ensure(DBuf *buf, size_t capacity) return 0; len = uc_dbuf_len(buf); sz = buf->start - buf->bufstart; - memmove(buf->bufstart, buf->start, len); + + if (buf->bufstart != buf->start) + memmove(buf->bufstart, buf->start, len); + if (sz + remaining < capacity) { size_t newlen = uc_dbuf_buflen(buf) + capacity; void *tmp = realloc(buf->bufstart, newlen); @@ -75,7 +78,8 @@ uc_dbuf_trim(DBuf *buf) if (len == 0) return; - memmove(buf->bufstart, buf->start, len); + if (buf->bufstart != buf->start) + memmove(buf->bufstart, buf->start, len); tmp = realloc(buf->bufstart, len); if (tmp != NULL)