"Lei Zhang" thestig@google.com writes:
- datalen = abs(stride * height);
- datalen = stride * height; size = sizeof(BITMAPFILEHEADER) + sizeof(BITMAPINFOHEADER) + datalen;
- if (datalen <= 0 || size <= 0){
GdipFree(*bitmap);
*bitmap = NULL;
return InvalidParameter;
- }
Testing for overflow is a good idea, but checking for a negative result is not the right way. You can get overflow with a positive result too.