[umbrello-devel] New Defects reported by Coverity Scan for Umbrello UML Modeller

scan-admin at coverity.com scan-admin at coverity.com
Thu Aug 6 13:38:05 UTC 2015


Hi,

Please find the latest report on new defect(s) introduced to Umbrello UML Modeller found with Coverity Scan.

6 new defect(s) introduced to Umbrello UML Modeller found with Coverity Scan.
1 defect(s), reported by Coverity Scan earlier, were marked fixed in the recent build analyzed by Coverity Scan.

New defect(s) Reported-by: Coverity Scan
Showing 6 of 6 defect(s)


** CID 130238:  Uninitialized members  (UNINIT_CTOR)
/home/umbrello/src/umbrello/umbrello/codeimport/sqlimport.h: 72 in SQLImport::TableConstraints::TableConstraints()()


________________________________________________________________________________________________________
*** CID 130238:  Uninitialized members  (UNINIT_CTOR)
/home/umbrello/src/umbrello/umbrello/codeimport/sqlimport.h: 72 in SQLImport::TableConstraints::TableConstraints()()
66             TableConstraints()
67               : primaryKey(false),
68                 uniqueKeys(false),
69                 autoIncrement(false),
70                 checkConstraint(false)
71             {
>>>     CID 130238:  Uninitialized members  (UNINIT_CTOR)
>>>     Non-static class member "notNullConstraint" is not initialized in this constructor nor in any functions that it calls.
72             }
73     
74             bool primaryKey;
75             bool uniqueKeys;
76             bool notNullConstraint;
77             bool autoIncrement;

** CID 130237:  Uninitialized variables  (UNINIT)
/home/umbrello/src/umbrello/umbrello/codeimport/sqlimport.cpp: 472 in SQLImport::parseTableConstraints(QString &)()


________________________________________________________________________________________________________
*** CID 130237:  Uninitialized variables  (UNINIT)
/home/umbrello/src/umbrello/umbrello/codeimport/sqlimport.cpp: 472 in SQLImport::parseTableConstraints(QString &)()
466      *
467      * @param token string with current token
468      * @return table constraints
469      */
470     SQLImport::TableConstraints SQLImport::parseTableConstraints(QString &token)
471     {
>>>     CID 130237:  Uninitialized variables  (UNINIT)
>>>     Declaring variable "constraints".
472         TableConstraints constraints;
473     
474         if (token.toLower() == QLatin1String("constraint")) {
475             constraints.constraintName = advance();
476             token = advance();
477         }

** CID 130234:    (FORWARD_NULL)
/home/umbrello/src/umbrello/umbrello/codeimport/sqlimport.cpp: 630 in SQLImport::parseCreateTable(QString &)()
/home/umbrello/src/umbrello/umbrello/codeimport/sqlimport.cpp: 630 in SQLImport::parseCreateTable(QString &)()


________________________________________________________________________________________________________
*** CID 130234:    (FORWARD_NULL)
/home/umbrello/src/umbrello/umbrello/codeimport/sqlimport.cpp: 630 in SQLImport::parseCreateTable(QString &)()
624         QString tableName = parseIdentifier(token);
625         DEBUG(DBG_SRC) << "parsing create table" << tableName;
626     
627         UMLFolder *folder = UMLApp::app()->document()->rootFolder(Uml::ModelType::EntityRelationship);
628         UMLObject *o = Import_Utils::createUMLObject(UMLObject::ot_Entity,
629                        tableName, folder, m_comment);
>>>     CID 130234:    (FORWARD_NULL)
>>>     Assigning: "entity" = "dynamic_cast <UMLEntity *>(o)".
630         UMLEntity *entity = dynamic_cast<UMLEntity*>(o);
631         m_comment.clear();
632         if (token.toLower() == QLatin1String("as")) {
633             skipStmt(QLatin1String(";"));
634             return false;
635         } else if (token == QLatin1String("(")) {
/home/umbrello/src/umbrello/umbrello/codeimport/sqlimport.cpp: 630 in SQLImport::parseCreateTable(QString &)()
624         QString tableName = parseIdentifier(token);
625         DEBUG(DBG_SRC) << "parsing create table" << tableName;
626     
627         UMLFolder *folder = UMLApp::app()->document()->rootFolder(Uml::ModelType::EntityRelationship);
628         UMLObject *o = Import_Utils::createUMLObject(UMLObject::ot_Entity,
629                        tableName, folder, m_comment);
>>>     CID 130234:    (FORWARD_NULL)
>>>     Assigning: "entity" = "dynamic_cast <UMLEntity *>(o)".
630         UMLEntity *entity = dynamic_cast<UMLEntity*>(o);
631         m_comment.clear();
632         if (token.toLower() == QLatin1String("as")) {
633             skipStmt(QLatin1String(";"));
634             return false;
635         } else if (token == QLatin1String("(")) {

** CID 130233:    (FORWARD_NULL)
/home/umbrello/src/umbrello/umbrello/codeimport/sqlimport.cpp: 582 in SQLImport::parseCreateDefinition(QString &, UMLEntity *)()
/home/umbrello/src/umbrello/umbrello/codeimport/sqlimport.cpp: 582 in SQLImport::parseCreateDefinition(QString &, UMLEntity *)()
/home/umbrello/src/umbrello/umbrello/codeimport/sqlimport.cpp: 582 in SQLImport::parseCreateDefinition(QString &, UMLEntity *)()
/home/umbrello/src/umbrello/umbrello/codeimport/sqlimport.cpp: 582 in SQLImport::parseCreateDefinition(QString &, UMLEntity *)()


________________________________________________________________________________________________________
*** CID 130233:    (FORWARD_NULL)
/home/umbrello/src/umbrello/umbrello/codeimport/sqlimport.cpp: 582 in SQLImport::parseCreateDefinition(QString &, UMLEntity *)()
576     
577             // handle field type
578             QStringList fieldType = parseFieldType(token);
579             SQLImport::ColumnConstraints constraints = parseColumnConstraints(token);
580     
581             DEBUG(DBG_SRC) << "field" << fieldName << fieldType.at(0);
>>>     CID 130233:    (FORWARD_NULL)
>>>     Comparing "entity" to null implies that "entity" might be null.
582             if (entity && !fieldName.isEmpty()) {
583                 UMLObject *type = addDatatype(fieldType);
584                 UMLEntityAttribute *a = new UMLEntityAttribute(0, fieldName,
585                         Uml::ID::None,
586                         Uml::Visibility::Public,
587                         type);
/home/umbrello/src/umbrello/umbrello/codeimport/sqlimport.cpp: 582 in SQLImport::parseCreateDefinition(QString &, UMLEntity *)()
576     
577             // handle field type
578             QStringList fieldType = parseFieldType(token);
579             SQLImport::ColumnConstraints constraints = parseColumnConstraints(token);
580     
581             DEBUG(DBG_SRC) << "field" << fieldName << fieldType.at(0);
>>>     CID 130233:    (FORWARD_NULL)
>>>     Comparing "entity" to null implies that "entity" might be null.
582             if (entity && !fieldName.isEmpty()) {
583                 UMLObject *type = addDatatype(fieldType);
584                 UMLEntityAttribute *a = new UMLEntityAttribute(0, fieldName,
585                         Uml::ID::None,
586                         Uml::Visibility::Public,
587                         type);
/home/umbrello/src/umbrello/umbrello/codeimport/sqlimport.cpp: 582 in SQLImport::parseCreateDefinition(QString &, UMLEntity *)()
576     
577             // handle field type
578             QStringList fieldType = parseFieldType(token);
579             SQLImport::ColumnConstraints constraints = parseColumnConstraints(token);
580     
581             DEBUG(DBG_SRC) << "field" << fieldName << fieldType.at(0);
>>>     CID 130233:    (FORWARD_NULL)
>>>     Comparing "entity" to null implies that "entity" might be null.
582             if (entity && !fieldName.isEmpty()) {
583                 UMLObject *type = addDatatype(fieldType);
584                 UMLEntityAttribute *a = new UMLEntityAttribute(0, fieldName,
585                         Uml::ID::None,
586                         Uml::Visibility::Public,
587                         type);
/home/umbrello/src/umbrello/umbrello/codeimport/sqlimport.cpp: 582 in SQLImport::parseCreateDefinition(QString &, UMLEntity *)()
576     
577             // handle field type
578             QStringList fieldType = parseFieldType(token);
579             SQLImport::ColumnConstraints constraints = parseColumnConstraints(token);
580     
581             DEBUG(DBG_SRC) << "field" << fieldName << fieldType.at(0);
>>>     CID 130233:    (FORWARD_NULL)
>>>     Comparing "entity" to null implies that "entity" might be null.
582             if (entity && !fieldName.isEmpty()) {
583                 UMLObject *type = addDatatype(fieldType);
584                 UMLEntityAttribute *a = new UMLEntityAttribute(0, fieldName,
585                         Uml::ID::None,
586                         Uml::Visibility::Public,
587                         type);

** CID 130232:    (FORWARD_NULL)
/home/umbrello/src/umbrello/umbrello/codeimport/sqlimport.cpp: 693 in SQLImport::parseAlterTable(QString &)()
/home/umbrello/src/umbrello/umbrello/codeimport/sqlimport.cpp: 704 in SQLImport::parseAlterTable(QString &)()
/home/umbrello/src/umbrello/umbrello/codeimport/sqlimport.cpp: 733 in SQLImport::parseAlterTable(QString &)()
/home/umbrello/src/umbrello/umbrello/codeimport/sqlimport.cpp: 693 in SQLImport::parseAlterTable(QString &)()
/home/umbrello/src/umbrello/umbrello/codeimport/sqlimport.cpp: 704 in SQLImport::parseAlterTable(QString &)()
/home/umbrello/src/umbrello/umbrello/codeimport/sqlimport.cpp: 733 in SQLImport::parseAlterTable(QString &)()


________________________________________________________________________________________________________
*** CID 130232:    (FORWARD_NULL)
/home/umbrello/src/umbrello/umbrello/codeimport/sqlimport.cpp: 693 in SQLImport::parseAlterTable(QString &)()
687                     token = advance(); // key
688                     token = advance();
689                     const QStringList &fieldNames = parseIdentifierList(token);
690                     if (!o) {
691                         // report error
692                     }
>>>     CID 130232:    (FORWARD_NULL)
>>>     Assigning: "entity" = "dynamic_cast <UMLEntity *>(o)".
693                     UMLEntity *entity = dynamic_cast<UMLEntity*>(o);
694                     if (!addPrimaryKey(entity, constraintName, fieldNames)) {
695                         ; // reporter error
696                     }
697                 }
698                 else if (token.toLower() == QLatin1String("unique")) {
/home/umbrello/src/umbrello/umbrello/codeimport/sqlimport.cpp: 704 in SQLImport::parseAlterTable(QString &)()
698                 else if (token.toLower() == QLatin1String("unique")) {
699                     token = advance();
700                     const QStringList &fieldNames = parseIdentifierList(token);
701                     if (!o) {
702                         // report error
703                     }
>>>     CID 130232:    (FORWARD_NULL)
>>>     Assigning: "entity" = "dynamic_cast <UMLEntity *>(o)".
704                     UMLEntity *entity = dynamic_cast<UMLEntity*>(o);
705                     if (!addUniqueConstraint(entity, constraintName, fieldNames)) {
706                         ; // report error
707                     }
708                 }
709                 // FOREIGN KEY (<NAME>) REFERENCES <TABLE> (<FIELD>)
/home/umbrello/src/umbrello/umbrello/codeimport/sqlimport.cpp: 733 in SQLImport::parseAlterTable(QString &)()
727                         token = advance(); // full
728                     }
729     
730                     if (!o) {
731                         // report error
732                     }
>>>     CID 130232:    (FORWARD_NULL)
>>>     Assigning: "entity" = "dynamic_cast <UMLEntity *>(o)".
733                     UMLEntity *entity = dynamic_cast<UMLEntity*>(o);
734                     if (!addForeignConstraint(entity, constraintName, localFieldNames, referencedTableName, referencedFieldNames)) {
735                         ; // report error
736                     }
737                 }
738             }
/home/umbrello/src/umbrello/umbrello/codeimport/sqlimport.cpp: 693 in SQLImport::parseAlterTable(QString &)()
687                     token = advance(); // key
688                     token = advance();
689                     const QStringList &fieldNames = parseIdentifierList(token);
690                     if (!o) {
691                         // report error
692                     }
>>>     CID 130232:    (FORWARD_NULL)
>>>     Assigning: "entity" = "dynamic_cast <UMLEntity *>(o)".
693                     UMLEntity *entity = dynamic_cast<UMLEntity*>(o);
694                     if (!addPrimaryKey(entity, constraintName, fieldNames)) {
695                         ; // reporter error
696                     }
697                 }
698                 else if (token.toLower() == QLatin1String("unique")) {
/home/umbrello/src/umbrello/umbrello/codeimport/sqlimport.cpp: 704 in SQLImport::parseAlterTable(QString &)()
698                 else if (token.toLower() == QLatin1String("unique")) {
699                     token = advance();
700                     const QStringList &fieldNames = parseIdentifierList(token);
701                     if (!o) {
702                         // report error
703                     }
>>>     CID 130232:    (FORWARD_NULL)
>>>     Assigning: "entity" = "dynamic_cast <UMLEntity *>(o)".
704                     UMLEntity *entity = dynamic_cast<UMLEntity*>(o);
705                     if (!addUniqueConstraint(entity, constraintName, fieldNames)) {
706                         ; // report error
707                     }
708                 }
709                 // FOREIGN KEY (<NAME>) REFERENCES <TABLE> (<FIELD>)
/home/umbrello/src/umbrello/umbrello/codeimport/sqlimport.cpp: 733 in SQLImport::parseAlterTable(QString &)()
727                         token = advance(); // full
728                     }
729     
730                     if (!o) {
731                         // report error
732                     }
>>>     CID 130232:    (FORWARD_NULL)
>>>     Assigning: "entity" = "dynamic_cast <UMLEntity *>(o)".
733                     UMLEntity *entity = dynamic_cast<UMLEntity*>(o);
734                     if (!addForeignConstraint(entity, constraintName, localFieldNames, referencedTableName, referencedFieldNames)) {
735                         ; // report error
736                     }
737                 }
738             }

** CID 130231:  Null pointer dereferences  (FORWARD_NULL)
/home/umbrello/src/umbrello/umbrello/codeimport/sqlimport.cpp: 818 in SQLImport::addDatatype(const QStringList &)()


________________________________________________________________________________________________________
*** CID 130231:  Null pointer dereferences  (FORWARD_NULL)
/home/umbrello/src/umbrello/umbrello/codeimport/sqlimport.cpp: 818 in SQLImport::addDatatype(const QStringList &)()
812     {
813         UMLObject *datatype = 0;
814         UMLPackage *parent = UMLApp::app()->document()->datatypeFolder();
815         if (type.at(0).toLower() == QLatin1String("enum")) {
816             QString name = Model_Utils::uniqObjectName(UMLObject::ot_Enum, parent, type.at(0));
817             datatype = Import_Utils::createUMLObject(UMLObject::ot_Enum, name, parent);
>>>     CID 130231:  Null pointer dereferences  (FORWARD_NULL)
>>>     Assigning: "enumType" = "dynamic_cast <UMLEnum *>(datatype)".
818             UMLEnum *enumType = dynamic_cast<UMLEnum*>(datatype);
819             for (int i = 2; i < type.size(); i++) {
820                 Import_Utils::addEnumLiteral(enumType, type.at(i));
821             }
822         } else {
823             datatype = Import_Utils::createUMLObject(UMLObject::ot_Datatype, type.at(0), parent);


________________________________________________________________________________________________________
To view the defects in Coverity Scan visit, https://scan.coverity.com/projects/3327?tab=overview

To manage Coverity Scan email notifications for "umbrello-devel at kde.org", click https://scan.coverity.com/subscriptions/edit?email=umbrello-devel%40kde.org&token=5fd61726dd9f6c9e1c4e067b821d8371



More information about the umbrello-devel mailing list