소스 검색

[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>
tags/v1.20.1
Michael Brown 7 년 전
부모
커밋
966a960a83
1개의 변경된 파일3개의 추가작업 그리고 1개의 파일을 삭제
  1. 3
    1
      src/core/pixbuf.c

+ 3
- 1
src/core/pixbuf.c 파일 보기

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

Loading…
취소
저장