Fix cacheput memmove bug.
authorfredrik <fredrik@959494ce-11ee-0310-bf91-de5d638817bd>
Thu, 3 Aug 2006 01:34:24 +0000 (01:34 +0000)
committerfredrik <fredrik@959494ce-11ee-0310-bf91-de5d638817bd>
Thu, 3 Aug 2006 01:34:24 +0000 (01:34 +0000)
git-svn-id: svn+ssh://svn.dolda2000.com/srv/svn/repos/src/vcfs@678 959494ce-11ee-0310-bf91-de5d638817bd

store.c

diff --git a/store.c b/store.c
index 5eef6d8..b8077d3 100644 (file)
--- a/store.c
+++ b/store.c
@@ -48,13 +48,13 @@ static void cacheput(struct store *st, struct addr *a, const void *data, ssize_t
        return;
     if(i < 4) {
        tmp = st->cache[he * 4 + i];
-       memmove(&st->cache[he * 4 + 1], &st->cache[he * 4], i);
+       memmove(&st->cache[he * 4 + 1], &st->cache[he * 4], i * sizeof(struct storecache));
        st->cache[he * 4] = tmp;
        return;
     }
     if(st->cache[he * 4 + 3].data != NULL)
        free(st->cache[he * 4 + 3].data);
-    memmove(&st->cache[he * 4 + 1], &st->cache[he * 4], 3);
+    memmove(&st->cache[he * 4 + 1], &st->cache[he * 4], 3 * sizeof(struct storecache));
     st->cache[he * 4].a = *a;
     if(len > 0)
        st->cache[he * 4].data = memcpy(malloc(len), data, len);