|
Hi, Please find the latest report on new defect(s) introduced to digiKam found with Coverity SCAN Defect(s) Reported-by: Coverity Scan ** CID 1004807: Uninitialized pointer field (UNINIT_CTOR) /mnt/devel/GIT/3.x/extra/libkface/libkface/facerecognizer.cpp: 55 http://scan5.coverity.com:8080//sourcebrowser.htm?projectId=10358#mergedDefectId=1004807 ** CID 1004806: Non-array delete for scalars (DELETE_ARRAY) /mnt/devel/GIT/3.x/extra/libkface/OpenTLD/src/libopentld/tld/Clustering.cpp: 262 http://scan5.coverity.com:8080//sourcebrowser.htm?projectId=10358#mergedDefectId=1004806 ** CID 1004805: Non-array delete for scalars (DELETE_ARRAY) /mnt/devel/GIT/3.x/extra/libkface/OpenTLD/src/libopentld/tld/Clustering.cpp: 124 http://scan5.coverity.com:8080//sourcebrowser.htm?projectId=10358#mergedDefectId=1004805 ** CID 1002052: Resource leak (RESOURCE_LEAK) /mnt/devel/GIT/3.x/core/utilities/facemanagement/facepipeline.cpp: 884 http://scan5.coverity.com:8080//sourcebrowser.htm?projectId=10358#mergedDefectId=1002052 ** CID 1002051: Resource leak (RESOURCE_LEAK) /mnt/devel/GIT/3.x/core/utilities/facemanagement/facepipeline.cpp: 567 http://scan5.coverity.com:8080//sourcebrowser.htm?projectId=10358#mergedDefectId=1002051 ________________________________________________________________________ CID 1004807: Uninitialized pointer field (UNINIT_CTOR) /mnt/devel/GIT/3.x/extra/libkface/libkface/facerecognizer.cpp: 83 ( member_decl) 80 public: 81 82 float threshold; >>> Class member declaration for "facemodeltostore". 83 unitFaceModel *facemodeltostore; 84 85 private: 86 87 Tldrecognition* tldRecognitionCore; /mnt/devel/GIT/3.x/extra/libkface/libkface/facerecognizer.cpp: 55 ( uninit_member) 52 threshold = 0.3; 53 tldRecognitionCore = 0; 54 db = 0; >>> CID 1004807: Uninitialized pointer field (UNINIT_CTOR) >>> Non-static class member "facemodeltostore" is not initialized in this constructor nor in any functions that it calls. 55 } 56 57 ~Private() 58 { 59 delete db; ________________________________________________________________________ CID 1004806: Non-array delete for scalars (DELETE_ARRAY) /mnt/devel/GIT/3.x/extra/libkface/OpenTLD/src/libopentld/tld/Clustering.cpp: 143 ( new_array) 140 int numDistances = numConfidentIndices * (numConfidentIndices - 1) / 2; 141 142 //Now: Cluster distances >>> Using new in : "new int[numDistances]". 143 int *distUsed = new int[numDistances]; 144 145 for(int i = 0; i < numDistances; i++) 146 { 147 distUsed[i] = 0; /mnt/devel/GIT/3.x/extra/libkface/OpenTLD/src/libopentld/tld/Clustering.cpp: 143 ( var_assign) 140 int numDistances = numConfidentIndices * (numConfidentIndices - 1) / 2; 141 142 //Now: Cluster distances >>> Assigning: "distUsed" = storage from "new int[numDistances]". 143 int *distUsed = new int[numDistances]; 144 145 for(int i = 0; i < numDistances; i++) 146 { 147 distUsed[i] = 0; /mnt/devel/GIT/3.x/extra/libkface/OpenTLD/src/libopentld/tld/Clustering.cpp: 262 ( delete_var) 259 } 260 } 261 } >>> CID 1004806: Non-array delete for scalars (DELETE_ARRAY) >>> Deleting array variable "distUsed" with non-array delete in "delete distUsed". 262 delete distUsed; 263 264 detectionResult->numClusters = numClusters; 265 } 266 ________________________________________________________________________ CID 1004805: Non-array delete for scalars (DELETE_ARRAY) /mnt/devel/GIT/3.x/extra/libkface/OpenTLD/src/libopentld/tld/Clustering.cpp: 113 ( new_array) 110 void Clustering::clusterConfidentIndices() 111 { 112 int numConfidentIndices = detectionResult->confidentIndices->size(); >>> Using new in : "new float[numConfidentIndices * (numConfidentIndices - 1) / 2]". 113 float *distances = new float[numConfidentIndices * (numConfidentIndices - 1) / 2]; 114 calcDistances(distances); 115 int *clusterIndices = new int[numConfidentIndices]; 116 cluster(distances, clusterIndices); 117 /mnt/devel/GIT/3.x/extra/libkface/OpenTLD/src/libopentld/tld/Clustering.cpp: 113 ( var_assign) 110 void Clustering::clusterConfidentIndices() 111 { 112 int numConfidentIndices = detectionResult->confidentIndices->size(); >>> Assigning: "distances" = storage from "new float[numConfidentIndices * (numConfidentIndices - 1) / 2]". 113 float *distances = new float[numConfidentIndices * (numConfidentIndices - 1) / 2]; 114 calcDistances(distances); 115 int *clusterIndices = new int[numConfidentIndices]; 116 cluster(distances, clusterIndices); 117 /mnt/devel/GIT/3.x/extra/libkface/OpenTLD/src/libopentld/tld/Clustering.cpp: 124 ( delete_var) 121 //TODO: Take the maximum confidence as the result confidence. 122 } 123 >>> CID 1004805: Non-array delete for scalars (DELETE_ARRAY) >>> Deleting array variable "distances" with non-array delete in "delete distances". 124 delete distances; 125 delete clusterIndices; 126 127 } 128 ________________________________________________________________________ CID 1002052: Resource leak (RESOURCE_LEAK) /mnt/devel/GIT/3.x/core/utilities/facemanagement/facepipeline.cpp: 875 ( alloc_fn) 872 iface.fillImageInFaces(package->image, package->faces, size); 873 } 874 >>> Storage is returned from allocation function "operator new(std::size_t)". 875 KFaceIface::FaceRecognizer * const recogniser = new KFaceIface::FaceRecognizer(); 876 877 for(int faceindex = 0;faceindex < package->faces.size();faceindex++) 878 { 879 package->faces[faceindex].setId(package->databaseFaces[faceindex].assignedTagId); /mnt/devel/GIT/3.x/core/utilities/facemanagement/facepipeline.cpp: 875 ( var_assign) 872 iface.fillImageInFaces(package->image, package->faces, size); 873 } 874 >>> Assigning: "recogniser" = storage returned from "new KFaceIface::FaceRecognizer". 875 KFaceIface::FaceRecognizer * const recogniser = new KFaceIface::FaceRecognizer(); 876 877 for(int faceindex = 0;faceindex < package->faces.size();faceindex++) 878 { 879 package->faces[faceindex].setId(package->databaseFaces[faceindex].assignedTagId); /mnt/devel/GIT/3.x/core/utilities/facemanagement/facepipeline.cpp: 883 ( noescape) 880 kDebug() << "person " << qPrintable(package->faces.at(faceindex).name()) 881 << " stored in recognition database" ; 882 } >>> Resource "recogniser" is not freed or pointed-to in function "KFaceIface::FaceRecognizer::storeFaces(QList<KFaceIface::Face> const &)". 883 recogniser->storeFaces(package->faces); 884 } 885 886 iface.removeFaces(toTrain); 887 package->databaseFaces.replaceRole(FacePipelineDatabaseFace::ForTraining, FacePipelineDatabaseFace::Trained); /mnt/devel/GIT/3.x/core/utilities/facemanagement/facepipeline.cpp: 884 ( leaked_storage) 881 << " stored in recognition database" ; 882 } 883 recogniser->storeFaces(package->faces); >>> CID 1002052: Resource leak (RESOURCE_LEAK) >>> Variable "recogniser" going out of scope leaks the storage it points to. 884 } 885 886 iface.removeFaces(toTrain); 887 package->databaseFaces.replaceRole(FacePipelineDatabaseFace::ForTraining, FacePipelineDatabaseFace::Trained); 888 ________________________________________________________________________ CID 1002051: Resource leak (RESOURCE_LEAK) /mnt/devel/GIT/3.x/core/utilities/facemanagement/facepipeline.cpp: 547 ( alloc_fn) 544 iface.fillImageInFaces(package->image, package->faces, size); 545 } 546 >>> Storage is returned from allocation function "operator new(std::size_t)". 547 KFaceIface::FaceRecognizer *recogniser = new KFaceIface::FaceRecognizer(); 548 549 QList<float> recgnitionRate = recogniser->recognizeFaces(package->faces); 550 551 if(!recgnitionRate.empty()) /mnt/devel/GIT/3.x/core/utilities/facemanagement/facepipeline.cpp: 547 ( var_assign) 544 iface.fillImageInFaces(package->image, package->faces, size); 545 } 546 >>> Assigning: "recogniser" = storage returned from "new KFaceIface::FaceRecognizer". 547 KFaceIface::FaceRecognizer *recogniser = new KFaceIface::FaceRecognizer(); 548 549 QList<float> recgnitionRate = recogniser->recognizeFaces(package->faces); 550 551 if(!recgnitionRate.empty()) /mnt/devel/GIT/3.x/core/utilities/facemanagement/facepipeline.cpp: 549 ( noescape) 546 547 KFaceIface::FaceRecognizer *recogniser = new KFaceIface::FaceRecognizer(); 548 >>> Resource "recogniser" is not freed or pointed-to in function "KFaceIface::FaceRecognizer::recognizeFaces(QList<KFaceIface::Face> &)". 549 QList<float> recgnitionRate = recogniser->recognizeFaces(package->faces); 550 551 if(!recgnitionRate.empty()) 552 { 553 for(int faceindex = 0;faceindex < package->faces.size() ;faceindex++ ) /mnt/devel/GIT/3.x/core/utilities/facemanagement/facepipeline.cpp: 567 ( leaked_storage) 564 565 package->processFlags |= FacePipelinePackage::ProcessedByRecognizer; 566 emit processed(package); >>> CID 1002051: Resource leak (RESOURCE_LEAK) >>> Variable "recogniser" going out of scope leaks the storage it points to. 567 } 568 569 void RecognitionWorker::setThreshold(double threshold) 570 { 571 recognitionThreshold = (float) threshold; ________________________________________________________________________ To view the defects in Coverity Scan visit, http://scan5.coverity.com:8080 If you don't have a username, you can request one by emailing: [hidden email] To unsubscribe from the email notification for new defects, http://scan.coverity.com/email_unsubscribe.html If you are project owner, you can subscribe your team member by accessing http://scan.coverity.com/email_subscription.html _______________________________________________ Digikam-devel mailing list [hidden email] https://mail.kde.org/mailman/listinfo/digikam-devel |
| Free forum by Nabble | Edit this page |
