Index: core/fxcodec/lbmp/fx_bmp.cpp |
diff --git a/core/fxcodec/lbmp/fx_bmp.cpp b/core/fxcodec/lbmp/fx_bmp.cpp |
index dcf1ee11f97ae17cca9c6d543c21495eba9ddb5a..b7f20666d8ebfb89d4e085c9f42f4c7cb6d3e471 100644 |
--- a/core/fxcodec/lbmp/fx_bmp.cpp |
+++ b/core/fxcodec/lbmp/fx_bmp.cpp |
@@ -213,6 +213,12 @@ int32_t bmp_read_header(bmp_decompress_struct_p bmp_ptr) { |
break; |
} |
FX_Free(bmp_ptr->out_row_buffer); |
+ |
+ if (bmp_ptr->out_row_bytes <= 0) { |
+ bmp_error(bmp_ptr, "The Bmp File Is Corrupt"); |
+ return 0; |
+ } |
+ |
bmp_ptr->out_row_buffer = FX_Alloc(uint8_t, bmp_ptr->out_row_bytes); |
FXSYS_memset(bmp_ptr->out_row_buffer, 0, bmp_ptr->out_row_bytes); |
bmp_save_decoding_status(bmp_ptr, BMP_D_STATUS_PAL); |