|
Hi, Please find the latest report on new defect(s) introduced to digiKam found with Coverity SCAN Defect(s) Reported-by: Coverity Scan ** CID 1002054: Uninitialized pointer field (UNINIT_CTOR) /mnt/devel/GIT/3.x/extra/libkface/libkface/facerecognizer.cpp: 51 http://scan5.coverity.com:8080//sourcebrowser.htm?projectId=10358#mergedDefectId=1002054 ** CID 1002053: Resource leak (RESOURCE_LEAK) /mnt/devel/GIT/3.x/extra/libkface/libkface/facerecognizer.cpp: 178 http://scan5.coverity.com:8080//sourcebrowser.htm?projectId=10358#mergedDefectId=1002053 ** 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 1002050: Missing break in switch (MISSING_BREAK) /mnt/devel/GIT/3.x/extra/libkface/libkface/database.cpp: 352 http://scan5.coverity.com:8080//sourcebrowser.htm?projectId=10358#mergedDefectId=1002050 ** CID 1002049: Resource leak in object (CTOR_DTOR_LEAK) /mnt/devel/GIT/3.x/extra/libkface/libkface/facerecognizer.cpp: 87 http://scan5.coverity.com:8080//sourcebrowser.htm?projectId=10358#mergedDefectId=1002049 ________________________________________________________________________ CID 1002054: Uninitialized pointer field (UNINIT_CTOR) /mnt/devel/GIT/3.x/extra/libkface/libkface/facerecognizer.cpp: 81 ( member_decl) 78 79 private: 80 >>> Class member declaration for "tldRecognitionCore". 81 Tldrecognition* tldRecognitionCore; 82 Tlddatabase* db; 83 }; 84 85 FaceRecognizer::FaceRecognizer() /mnt/devel/GIT/3.x/extra/libkface/libkface/facerecognizer.cpp: 51 ( uninit_member) 48 { 49 db = 0; 50 threshold = 0.3; >>> CID 1002054: Uninitialized pointer field (UNINIT_CTOR) >>> Non-static class member "tldRecognitionCore" is not initialized in this constructor nor in any functions that it calls. 51 } 52 53 ~FaceRecognizerPriv() 54 { 55 delete db; ________________________________________________________________________ CID 1002053: Resource leak (RESOURCE_LEAK) /mnt/devel/GIT/3.x/extra/libkface/libkface/facerecognizer.cpp: 171 ( alloc_fn) 168 IplImage* const inputfaceimage = cvCreateImage(cvSize(47,47),img1->depth,img1->nChannels); 169 cvResize(img1,inputfaceimage); 170 >>> Storage is returned from allocation function "KFaceIface::Tldrecognition::getModeltoStore(IplImage *) const". 171 KFaceIface::unitFaceModel* const facemodeltostore = d->recognition()->getModeltoStore(inputfaceimage); 172 facemodeltostore->Name = face.name(); 173 facemodeltostore->faceid = face.id(); 174 175 kDebug() << face.name() << face.id() ; /mnt/devel/GIT/3.x/extra/libkface/libkface/facerecognizer.cpp: 171 ( var_assign) 168 IplImage* const inputfaceimage = cvCreateImage(cvSize(47,47),img1->depth,img1->nChannels); 169 cvResize(img1,inputfaceimage); 170 >>> Assigning: "facemodeltostore" = storage returned from "this->d->recognition()->getModeltoStore(inputfaceimage)". 171 KFaceIface::unitFaceModel* const facemodeltostore = d->recognition()->getModeltoStore(inputfaceimage); 172 facemodeltostore->Name = face.name(); 173 facemodeltostore->faceid = face.id(); 174 175 kDebug() << face.name() << face.id() ; /mnt/devel/GIT/3.x/extra/libkface/libkface/facerecognizer.cpp: 177 ( noescape) 174 175 kDebug() << face.name() << face.id() ; 176 >>> Resource "facemodeltostore" is not freed or pointed-to in function "KFaceIface::Tlddatabase::insertFaceModel(KFaceIface::unitFaceModel *) const". 177 d->database()->insertFaceModel(facemodeltostore); //store facemodel in tlddatabase 178 } 179 } 180 181 } // namespace KFaceIface /mnt/devel/GIT/3.x/extra/libkface/libkface/facerecognizer.cpp: 178 ( leaked_storage) 175 kDebug() << face.name() << face.id() ; 176 177 d->database()->insertFaceModel(facemodeltostore); //store facemodel in tlddatabase >>> CID 1002053: Resource leak (RESOURCE_LEAK) >>> Variable "facemodeltostore" going out of scope leaks the storage it points to. 178 } 179 } 180 181 } // namespace KFaceIface 182 ________________________________________________________________________ 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> &)". 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; ________________________________________________________________________ CID 1002050: Missing break in switch (MISSING_BREAK) /mnt/devel/GIT/3.x/extra/libkface/libkface/database.cpp: 352 ( unterminated_case) 349 { 350 switch(mode) 351 { >>> CID 1002050: Missing break in switch (MISSING_BREAK) >>> This case (value 0) is not terminated by a 'break' statement. 352 case 0: 353 d->colorMode = grayscale; 354 case 1: 355 d->colorMode = color; 356 } /mnt/devel/GIT/3.x/extra/libkface/libkface/database.cpp: 354 ( fallthrough) 351 { 352 case 0: 353 d->colorMode = grayscale; >>> The above case falls through to this one. 354 case 1: 355 d->colorMode = color; 356 } 357 } 358 ________________________________________________________________________ CID 1002049: Resource leak in object (CTOR_DTOR_LEAK) /mnt/devel/GIT/3.x/extra/libkface/libkface/facerecognizer.cpp: 87 ( alloc_new) 84 85 FaceRecognizer::FaceRecognizer() 86 : d(new FaceRecognizerPriv()) >>> CID 1002049: Resource leak in object (CTOR_DTOR_LEAK) >>> Allocating memory by calling "new KFaceIface::FaceRecognizer::FaceRecognizerPriv". 87 { 88 } 89 90 FaceRecognizer::~FaceRecognizer() 91 { /mnt/devel/GIT/3.x/extra/libkface/libkface/facerecognizer.cpp: 87 ( var_assign) 84 85 FaceRecognizer::FaceRecognizer() 86 : d(new FaceRecognizerPriv()) >>> Assigning: "this->d" = "new KFaceIface::FaceRecognizer::FaceRecognizerPriv". 87 { 88 } 89 90 FaceRecognizer::~FaceRecognizer() 91 { /mnt/devel/GIT/3.x/extra/libkface/libkface/facerecognizer.cpp: 87 ( ctor_dtor_leak) 84 85 FaceRecognizer::FaceRecognizer() 86 : d(new FaceRecognizerPriv()) >>> The constructor allocates field "d" of "KFaceIface::FaceRecognizer" but the destructor and whatever functions it calls do not free it. 87 { 88 } 89 90 FaceRecognizer::~FaceRecognizer() 91 { ________________________________________________________________________ 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 |
