[Digikam-devel] New Defects reported by Coverity Scan for digiKam
scan-admin at coverity.com
scan-admin at coverity.com
Fri Apr 12 22:39:28 BST 2013
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: scan-admin at coverity.com
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
More information about the Digikam-devel
mailing list