david/ipxe
david
/
ipxe
Archived
1
0
Fork 0

[pixbuf] Avoid potential division by zero

Avoid potential division by zero when performing the check against
multiplication overflow.  (Note that if the width is zero then there
can be no overflow anyway, so it is then safe to bypass the check.)

Signed-off-by: Michael Brown <mcb30@ipxe.org>
This commit is contained in:
Michael Brown 2017-03-22 14:11:19 +02:00
parent 45f2265bfc
commit 966a960a83
1 changed files with 3 additions and 1 deletions

View File

@ -68,8 +68,10 @@ struct pixel_buffer * alloc_pixbuf ( unsigned int width, unsigned int height ) {
pixbuf->len = ( width * height * sizeof ( uint32_t ) );
/* Check for multiplication overflow */
if ( ( ( pixbuf->len / sizeof ( uint32_t ) ) / width ) != height )
if ( ( width != 0 ) &&
( ( pixbuf->len / sizeof ( uint32_t ) ) / width ) != height ) {
goto err_overflow;
}
/* Allocate pixel data buffer */
pixbuf->data = umalloc ( pixbuf->len );