From 1a4745b0f789eebeeb721e6959dd59516b2ca9c5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20SARTHOU?= Date: Mon, 25 Jun 2018 17:16:35 +0200 Subject: [PATCH] Adding case in free() function to avoid pointer undefined when the destructor is called on a undefined transform_type --- src/libsparse3d/MR3D_Obj.cc | 27 ++++++++++++++++++++------- 1 file changed, 20 insertions(+), 7 deletions(-) diff --git a/src/libsparse3d/MR3D_Obj.cc b/src/libsparse3d/MR3D_Obj.cc index d0e8ccc..f59bfe1 100755 --- a/src/libsparse3d/MR3D_Obj.cc +++ b/src/libsparse3d/MR3D_Obj.cc @@ -849,14 +849,27 @@ void MR_3D::free () Border = DEFAULT_BORDER_3D; switch (Set_Transform) { - case TRANS3_MALLAT: - Data.free(); + case TRANS3_MALLAT: + Data.free(); break; - case TRANS3_PAVE: - AT3D_WT.free(TabBand, Nbr_Plan); - break; - default: cerr << "Error: bad transform ... " << endl; - exit(-1); + case TRANS3_PAVE: + AT3D_WT.free(TabBand, Nbr_Plan); + break; + case S3_UNDEFINED: + // We set those attrributes to NULL because these should be instantiated + // in the init(). + TabPosX = NULL; + TabSizeNx = NULL; + TabPosY = NULL; + TabSizeNy = NULL; + TabPosZ = NULL; + TabSizeNz = NULL; + FilterBank = NULL; + break; + + default: cerr << "Error: bad transform ... " << endl; + exit(-1); + } Nbr_Plan = 0; Nbr_Band = 0;