plustek: fix for gain loop computation to prevent buffer overrun

pixma-axis-driver
Ralph Little 2020-03-15 20:21:16 -07:00
rodzic a1888ae3bd
commit 4e9cbda3ba
1 zmienionych plików z 3 dodań i 3 usunięć

Wyświetl plik

@ -882,7 +882,7 @@ TOGAIN:
if( m_ScanParam.bDataType == SCANDATATYPE_Color ) {
RGBULongDef rgb, rgbSum;
u_long dwLoop = len / 20 * 20;
u_long dwLoop = (len - start) / 20 * 20;
u_long dw10, dwGray, dwGrayMax;
rgb.Red = rgb.Green = rgb.Blue = dwGrayMax = 0;
@ -923,7 +923,7 @@ TOGAIN:
} else {
u_long dwMax = 0, dwSum;
u_long dwLoop = len / 20 * 20;
u_long dwLoop = (len - start) / 20 * 20;
u_long dw10;
for( dw = start; dwLoop; dwLoop-- ) {
@ -951,7 +951,7 @@ TOGAIN:
RGBUShortDef max_rgb, min_rgb, tmp_rgb;
u_long dwR, dwG, dwB;
u_long dwDiv = 10;
u_long dwLoop1 = len / dwDiv, dwLoop2;
u_long dwLoop1 = (len - start) / dwDiv, dwLoop2;
max_rgb.Red = max_rgb.Green = max_rgb.Blue = 0;
min_rgb.Red = min_rgb.Green = min_rgb.Blue = 0xffff;