summaryrefslogtreecommitdiff
path: root/tests/gdimagecolorclosest/gdimagecolorclosest.c
diff options
context:
space:
mode:
authorPierre Joye <pierre.php@gmail.com>2022-02-01 22:25:03 +0700
committerGitHub <noreply@github.com>2022-02-01 22:25:03 +0700
commit95c6185b3751a7b3d73093e1d9b67bb00a577cd2 (patch)
treea00634befbba1b04a64ec80a7071cb9ab318404e /tests/gdimagecolorclosest/gdimagecolorclosest.c
parent910924ffd78fd9ae13e27e2136316f8e49f4fcb1 (diff)
downloadlibgd-95c6185b3751a7b3d73093e1d9b67bb00a577cd2.tar.gz
Bug/818 (#821)
* Partial #818, unused arg * Partial #818, init var * partail #818, fix va_args usage * partail #818, handle f* calls and avoid possible call to malloc with negative values * partail #818, prevent double free * partail #818, resource leak if test fail * partail #818, null deref fix * partail #818, avoid double free on fp failure * Partial #818, fix error msg * Partial #818, leak on error * Partial #818, null deref * Partial #818, avoid possible negative index on failure * partial #818, does not free if we return if requested new size overflow * partial #818, avoid double free, free where the alloc happened * partial #818, fix assert logic and test exp_size for <=0 * partial #818, fix assert logic for color idx test * partial #818, new case for possible leak, improve logic * partial #818, fix assert logic for color idx test
Diffstat (limited to 'tests/gdimagecolorclosest/gdimagecolorclosest.c')
-rw-r--r--tests/gdimagecolorclosest/gdimagecolorclosest.c18
1 files changed, 15 insertions, 3 deletions
diff --git a/tests/gdimagecolorclosest/gdimagecolorclosest.c b/tests/gdimagecolorclosest/gdimagecolorclosest.c
index 4754a2c..f6fd742 100644
--- a/tests/gdimagecolorclosest/gdimagecolorclosest.c
+++ b/tests/gdimagecolorclosest/gdimagecolorclosest.c
@@ -26,7 +26,13 @@ int main()
im = gdImageCreate(5, 5);
c = gdImageColorAllocate(im, 255, 0, 255);
c = gdImageColorClosest(im, 255, 0, 255);
- c = gdTrueColorAlpha(gdImageRed(im, c), gdImageGreen(im, c), gdImageBlue(im, c), 0);
+ c = gdTestAssert(c>=0) ?
+ gdTrueColorAlpha(gdImageRed(im, c), gdImageGreen(im, c), gdImageBlue(im, c), 0)
+ :
+ -1;
+
+
+
gdImageDestroy(im);
if (gdTestAssert(c==0xFF00FF) != 1) {
error = -1;
@@ -38,7 +44,10 @@ int main()
c = gdImageColorAllocate(im, 255, 0, 0);
}
c = gdImageColorClosest(im, 255, 0, 0);
- c = gdTrueColorAlpha(gdImageRed(im, c), gdImageGreen(im, c), gdImageBlue(im, c), 0);
+ c = gdTestAssert(c>=0) ?
+ gdTrueColorAlpha(gdImageRed(im, c), gdImageGreen(im, c), gdImageBlue(im, c), 0)
+ :
+ -1;
gdImageDestroy(im);
if (gdTestAssert(c==0xFF0000) != 1) {
error = -1;
@@ -49,7 +58,10 @@ int main()
c = gdImageColorAllocate(im, 255, 0, 0);
}
c = gdImageColorClosest(im, 255, 0, 0);
- c = gdTrueColorAlpha(gdImageRed(im, c), gdImageGreen(im, c), gdImageBlue(im, c), 0);
+ c = gdTestAssert(c>=0) ?
+ gdTrueColorAlpha(gdImageRed(im, c), gdImageGreen(im, c), gdImageBlue(im, c), 0)
+ :
+ -1;
gdImageDestroy(im);
if (gdTestAssert(c==0xFF0000) != 1) {
error = -1;