diff options
| author | Thomas Knudsen <busstoptaktik@users.noreply.github.com> | 2017-10-12 21:09:57 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2017-10-12 21:09:57 +0200 |
| commit | 026294c6f44eb7d4e0bce7b6fa94a0866a5d5769 (patch) | |
| tree | a5cc865e314f47ffeaef5745cf168c0741f10600 /src | |
| parent | 446ce34042946015cb87b44aadefbff46b808866 (diff) | |
| parent | f6966b8d5ecef5474ceadd099975467ada140c57 (diff) | |
| download | PROJ-026294c6f44eb7d4e0bce7b6fa94a0866a5d5769.tar.gz PROJ-026294c6f44eb7d4e0bce7b6fa94a0866a5d5769.zip | |
Merge pull request #602 from busstoptaktik/oss-fuzz-3620
Resolve OSS-Fuzz issue 3620
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=3620
Credit to OSS-Fuzz
Diffstat (limited to 'src')
| -rw-r--r-- | src/PJ_pipeline.c | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/src/PJ_pipeline.c b/src/PJ_pipeline.c index d1ddf65f..137fdec8 100644 --- a/src/PJ_pipeline.c +++ b/src/PJ_pipeline.c @@ -269,15 +269,18 @@ static void *destructor (PJ *P, int errlev) { if (0==P->opaque) return pj_default_destructor (P, errlev); - for (i = 0; i < P->opaque->steps; i++) - P->opaque->pipeline[i+1]->destructor (P->opaque->pipeline[i+1], errlev); + /* Deallocate each pipeine step, then pipeline array */ + if (0!=P->opaque->pipeline) + for (i = 0; i < P->opaque->steps; i++) + if (0!=P->opaque->pipeline[i+1]) + P->opaque->pipeline[i+1]->destructor (P->opaque->pipeline[i+1], errlev); + pj_dealloc (P->opaque->pipeline); pj_dealloc (P->opaque->reverse_step); pj_dealloc (P->opaque->omit_forward); pj_dealloc (P->opaque->omit_inverse); pj_dealloc (P->opaque->argv); pj_dealloc (P->opaque->current_argv); - pj_dealloc (P->opaque->pipeline); return pj_default_destructor(P, errlev); } |
