Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
[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>
  • Loading branch information
mcb30 committed Mar 22, 2017
1 parent 45f2265 commit 966a960
Showing 1 changed file with 3 additions and 1 deletion.
4 changes: 3 additions & 1 deletion src/core/pixbuf.c
Expand Up @@ -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 );
Expand Down

0 comments on commit 966a960

Please sign in to comment.