From 7d81f67b88036ca76480c33b9a7454acdb37ee1c Mon Sep 17 00:00:00 2001 From: "Pedro F. Giffuni" Date: Mon, 22 Jan 2018 15:55:51 +0000 Subject: [PATCH] drm2: Basic use of mallocarray(9). These functions deal the same type of overflows we do with mallocarray(9). Using our mallocarray will panic, which different from the previous behavior (returning NULL), but neither behavior is more correct. As a sidenote, drm_calloc_large() is not currently used at all. Reviewed by: dumbbell Differential Revision: https://reviews.freebsd.org/D13835 --- sys/dev/drm2/drm_mem_util.h | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/sys/dev/drm2/drm_mem_util.h b/sys/dev/drm2/drm_mem_util.h index 01ca720ba0f0..68bb3a9cd70d 100644 --- a/sys/dev/drm2/drm_mem_util.h +++ b/sys/dev/drm2/drm_mem_util.h @@ -36,19 +36,15 @@ __FBSDID("$FreeBSD$"); static __inline__ void *drm_calloc_large(size_t nmemb, size_t size) { - if (size != 0 && nmemb > SIZE_MAX / size) - return NULL; - return malloc(nmemb * size, DRM_MEM_DRIVER, M_NOWAIT | M_ZERO); + return mallocarray(nmemb, size, DRM_MEM_DRIVER, M_NOWAIT | M_ZERO); } /* Modeled after cairo's malloc_ab, it's like calloc but without the zeroing. */ static __inline__ void *drm_malloc_ab(size_t nmemb, size_t size) { - if (size != 0 && nmemb > SIZE_MAX / size) - return NULL; - return malloc(nmemb * size, DRM_MEM_DRIVER, M_NOWAIT); + return mallocarray(nmemb, size, DRM_MEM_DRIVER, M_NOWAIT); } static __inline void drm_free_large(void *ptr)