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
This commit is contained in:
parent
67e8bb2f5e
commit
7d81f67b88
@ -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)
|
||||
|
Loading…
x
Reference in New Issue
Block a user