diff options
| author | Even Rouault <even.rouault@spatialys.com> | 2017-09-03 10:21:15 +0200 |
|---|---|---|
| committer | Even Rouault <even.rouault@spatialys.com> | 2017-09-03 10:21:15 +0200 |
| commit | efe7db5daf1067d57be1726193a7b59d5ba038af (patch) | |
| tree | 81df483cf0c1c4be9aede8ab3289d406e5b6bbac /src | |
| parent | 192644149292697022b6b822faad5fdf519c44c8 (diff) | |
| download | PROJ-efe7db5daf1067d57be1726193a7b59d5ba038af.tar.gz PROJ-efe7db5daf1067d57be1726193a7b59d5ba038af.zip | |
PJ_goode: fix memory leak. Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=3274. Credit to OSS Fuzz
Diffstat (limited to 'src')
| -rw-r--r-- | src/PJ_goode.c | 16 |
1 files changed, 12 insertions, 4 deletions
diff --git a/src/PJ_goode.c b/src/PJ_goode.c index fff12a78..9138cedc 100644 --- a/src/PJ_goode.c +++ b/src/PJ_goode.c @@ -49,9 +49,9 @@ static void *freeup_new (PJ *P) { /* Destructor */ if (0==P->opaque) return pj_dealloc(P); if (P->opaque->sinu) - pj_dealloc(P->opaque->sinu); + pj_free(P->opaque->sinu); if (P->opaque->moll) - pj_dealloc(P->opaque->moll); + pj_free(P->opaque->moll); pj_dealloc (P->opaque); return pj_dealloc(P); @@ -104,7 +104,11 @@ int pj_goode_selftest (void) { }; XY s_fwd_expect[] = { - { 223368.11902663155, 111701.07212763709},
{ 223368.11902663155, -111701.07212763709},
{-223368.11902663155, 111701.07212763709},
{-223368.11902663155, -111701.07212763709},
}; + { 223368.11902663155, 111701.07212763709}, + { 223368.11902663155, -111701.07212763709}, + {-223368.11902663155, 111701.07212763709}, + {-223368.11902663155, -111701.07212763709}, + }; XY inv_in[] = { { 200, 100}, @@ -114,7 +118,11 @@ int pj_goode_selftest (void) { }; LP s_inv_expect[] = { - { 0.0017904931100023887, 0.00089524655489191132},
{ 0.0017904931100023887, -0.00089524655489191132},
{-0.0017904931100023887, 0.00089524655489191132},
{-0.0017904931100023887, -0.00089524655489191132},
}; + { 0.0017904931100023887, 0.00089524655489191132}, + { 0.0017904931100023887, -0.00089524655489191132}, + {-0.0017904931100023887, 0.00089524655489191132}, + {-0.0017904931100023887, -0.00089524655489191132}, + }; return pj_generic_selftest (0, s_args, tolerance_xy, tolerance_lp, 4, 4, fwd_in, 0, s_fwd_expect, inv_in, 0, s_inv_expect); } |
