mirror of
https://review.haiku-os.org/haiku
synced 2025-02-22 21:48:35 +01:00
GIFTranslator: Fix offset free
Re-offset red_error, green_error and blue_error when deleted, since they are offseted at line 99, 109 and 120 after they are allocated. Pointed out by Clang Static Analyzer Change-Id: Ic12a754dff7049fc4fbfd25ababafd8243db6baa Reviewed-on: https://review.haiku-os.org/c/haiku/+/2354 Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>
This commit is contained in:
parent
edfce7b327
commit
9a333ed1fc
@ -102,7 +102,7 @@ GIFSave::GIFSave(BBitmap* bitmap, BPositionIO* output,
|
||||
green_error = new(std::nothrow) int32[width + 2];
|
||||
if (green_error == NULL) {
|
||||
delete palette;
|
||||
delete[] red_error;
|
||||
delete[] &red_error[-1];
|
||||
fatalerror = true;
|
||||
return;
|
||||
}
|
||||
@ -112,8 +112,8 @@ GIFSave::GIFSave(BBitmap* bitmap, BPositionIO* output,
|
||||
blue_error = new(std::nothrow) int32[width + 2];
|
||||
if (blue_error == NULL) {
|
||||
delete palette;
|
||||
delete[] red_error;
|
||||
delete[] green_error;
|
||||
delete[] &red_error[-1];
|
||||
delete[] &green_error[-1];
|
||||
fatalerror = true;
|
||||
return;
|
||||
}
|
||||
@ -186,9 +186,9 @@ GIFSave::GIFSave(BBitmap* bitmap, BPositionIO* output,
|
||||
|
||||
if (WriteGIFHeader() != B_OK) {
|
||||
delete palette;
|
||||
delete[] red_error;
|
||||
delete[] green_error;
|
||||
delete[] blue_error;
|
||||
delete[] &red_error[-1];
|
||||
delete[] &green_error[-1];
|
||||
delete[] &blue_error[-1];
|
||||
fatalerror = true;
|
||||
return;
|
||||
}
|
||||
@ -199,9 +199,9 @@ GIFSave::GIFSave(BBitmap* bitmap, BPositionIO* output,
|
||||
hash = new(std::nothrow) SFHash(1 << 16);
|
||||
if (hash == NULL) {
|
||||
delete palette;
|
||||
delete[] red_error;
|
||||
delete[] green_error;
|
||||
delete[] blue_error;
|
||||
delete[] &red_error[-1];
|
||||
delete[] &green_error[-1];
|
||||
delete[] &blue_error[-1];
|
||||
fatalerror = true;
|
||||
return;
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user