Fix drm_realloc when you're reallocing into something smaller.
authorTomas Carnecky <tom@dbservice.com>
Thu, 28 Aug 2008 22:43:19 +0000 (00:43 +0200)
committerStephane Marchesin <marchesin@icps.u-strasbg.fr>
Thu, 28 Aug 2008 22:43:19 +0000 (00:43 +0200)
bsd-core/drm_memory.c
linux-core/drm_memory.c

index 05343f3..8089140 100644 (file)
@@ -69,7 +69,7 @@ void *drm_realloc(void *oldpt, size_t oldsize, size_t size, int area)
        if (pt == NULL)
                return NULL;
        if (oldpt && oldsize) {
-               memcpy(pt, oldpt, oldsize);
+               memcpy(pt, oldpt, DRM_MIN(oldsize,size));
                free(oldpt, M_DRM);
        }
        return pt;
index b90fc02..d1a88c8 100644 (file)
@@ -183,7 +183,7 @@ void *drm_realloc(void *oldpt, size_t oldsize, size_t size, int area)
        if (!(pt = kmalloc(size, GFP_KERNEL)))
                return NULL;
        if (oldpt && oldsize) {
-               memcpy(pt, oldpt, oldsize);
+               memcpy(pt, oldpt, DRM_MIN(oldsize,size));
                kfree(oldpt);
        }
        return pt;