Skip to content

Commit

Permalink
Batch fix for unchecked instances of QSqlQuery::next(). Fixes multipl…
Browse files Browse the repository at this point in the history
…e Coverity warnings.
  • Loading branch information
stuartm committed May 24, 2012
1 parent b30825e commit 29ca559
Show file tree
Hide file tree
Showing 14 changed files with 70 additions and 82 deletions.
3 changes: 1 addition & 2 deletions mythplugins/mytharchive/mytharchive/logviewer.cpp
Expand Up @@ -227,9 +227,8 @@ QString LogViewer::getSetting(const QString &key)
query.bindValue(":VALUE", key); query.bindValue(":VALUE", key);
query.bindValue(":HOSTNAME", gCoreContext->GetHostName()); query.bindValue(":HOSTNAME", gCoreContext->GetHostName());


if (query.exec() && query.isActive() && query.size() > 0) if (query.exec() && query.next())
{ {
query.next();
return query.value(0).toString(); return query.value(0).toString();
} }
} }
Expand Down
3 changes: 1 addition & 2 deletions mythplugins/mythmusic/mythmusic/metadata.cpp
Expand Up @@ -194,9 +194,8 @@ bool Metadata::isInDatabase()
query.bindValue(":FILENAME", sqlfilename); query.bindValue(":FILENAME", sqlfilename);
query.bindValue(":DIRECTORY", sqldir); query.bindValue(":DIRECTORY", sqldir);


if (query.exec() && query.isActive() && query.size() > 0) if (query.exec() && query.next())
{ {
query.next();


m_artist = query.value(0).toString(); m_artist = query.value(0).toString();
m_compilation_artist = query.value(1).toString(); m_compilation_artist = query.value(1).toString();
Expand Down
10 changes: 2 additions & 8 deletions mythplugins/mythmusic/mythmusic/smartplaylist.cpp
Expand Up @@ -896,7 +896,6 @@ void SmartPlaylistEditor::loadFromDatabase(QString category, QString name)


// load smartplaylist items // load smartplaylist items
SmartPLCriteriaRow *row; SmartPLCriteriaRow *row;
uint rowCount;


query.prepare("SELECT field, operator, value1, value2 " query.prepare("SELECT field, operator, value1, value2 "
"FROM music_smartplaylist_items WHERE smartplaylistid = :ID " "FROM music_smartplaylist_items WHERE smartplaylistid = :ID "
Expand All @@ -905,12 +904,9 @@ void SmartPlaylistEditor::loadFromDatabase(QString category, QString name)
if (!query.exec()) if (!query.exec())
MythDB::DBError("Load smartplaylist items", query); MythDB::DBError("Load smartplaylist items", query);


if (query.isActive() && query.size() > 0) if (query.size() > 0)
{ {
rowCount = query.size(); while (query.next())

query.first();
for (uint x = 0; x < rowCount; x++)
{ {
QString Field = query.value(0).toString(); QString Field = query.value(0).toString();
QString Operator = query.value(1).toString(); QString Operator = query.value(1).toString();
Expand All @@ -920,8 +916,6 @@ void SmartPlaylistEditor::loadFromDatabase(QString category, QString name)
m_criteriaRows.append(row); m_criteriaRows.append(row);


new MythUIButtonListItem(m_criteriaList, row->toString(), qVariantFromValue(row)); new MythUIButtonListItem(m_criteriaList, row->toString(), qVariantFromValue(row));

query.next();
} }
} }
else else
Expand Down
55 changes: 31 additions & 24 deletions mythtv/libs/libmyth/netutils.cpp
Expand Up @@ -347,20 +347,21 @@ bool needsUpdate(GrabberScript* script, uint updateFreq)


QDateTime lastUpdate(GrabberScript* script) QDateTime lastUpdate(GrabberScript* script)
{ {
QDateTime updated;
MSqlQuery query(MSqlQuery::InitCon()); MSqlQuery query(MSqlQuery::InitCon());
query.prepare("SELECT updated " query.prepare("SELECT updated "
"FROM internetcontent " "FROM internetcontent "
"WHERE commandline = :COMMAND ORDER " "WHERE commandline = :COMMAND ORDER "
"BY updated DESC LIMIT 1;"); "BY updated DESC LIMIT 1;");
QFileInfo fi(script->GetCommandline()); QFileInfo fi(script->GetCommandline());
query.bindValue(":COMMAND", fi.fileName()); query.bindValue(":COMMAND", fi.fileName());
if (!query.exec() || !query.isActive()) { if (!query.exec() || !query.isActive())
{
MythDB::DBError("Tree last update in db", query); MythDB::DBError("Tree last update in db", query);
} }

else if (query.next())
query.next(); updated = query.value(0).toDateTime();


QDateTime updated = query.value(0).toDateTime();
return updated; return updated;
} }


Expand All @@ -374,7 +375,8 @@ bool clearTreeItems(const QString &feedcommand)
"WHERE feedtitle = :FEEDTITLE AND podcast = 0;"); "WHERE feedtitle = :FEEDTITLE AND podcast = 0;");
query.bindValue(":FEEDTITLE", feedcommand); query.bindValue(":FEEDTITLE", feedcommand);


if (!query.exec() || !query.isActive()) { if (!query.exec() || !query.isActive())
{
MythDB::DBError("netcontent: clearing DB", query); MythDB::DBError("netcontent: clearing DB", query);
return false; return false;
} }
Expand All @@ -393,7 +395,8 @@ bool isTreeInUse(const QString &feedcommand)
QFileInfo fi(feedcommand); QFileInfo fi(feedcommand);
query.bindValue(":COMMAND", fi.fileName()); query.bindValue(":COMMAND", fi.fileName());


if (!query.exec() || !query.isActive()) { if (!query.exec() || !query.isActive())
{
MythDB::DBError("netcontent: isTreeInUse", query); MythDB::DBError("netcontent: isTreeInUse", query);
return false; return false;
} }
Expand Down Expand Up @@ -457,7 +460,8 @@ bool insertTreeArticleInDB(const QString &feedtitle, const QString &path,
query.bindValue(":SEASON", item->GetSeason()); query.bindValue(":SEASON", item->GetSeason());
query.bindValue(":EPISODE", item->GetEpisode()); query.bindValue(":EPISODE", item->GetEpisode());


if (!query.exec() || !query.isActive()) { if (!query.exec() || !query.isActive())
{
MythDB::DBError("netcontent: inserting article in DB", query); MythDB::DBError("netcontent: inserting article in DB", query);
return false; return false;
} }
Expand All @@ -481,7 +485,8 @@ QMultiMap<QPair<QString,QString>, ResultItem*> getTreeArticles(const QString &fe
"AND type = :TYPE ORDER BY title DESC;"); "AND type = :TYPE ORDER BY title DESC;");
query.bindValue(":FEEDTITLE", feedtitle); query.bindValue(":FEEDTITLE", feedtitle);
query.bindValue(":TYPE", type); query.bindValue(":TYPE", type);
if (!query.exec() || !query.isActive()) { if (!query.exec() || !query.isActive())
{
MythDB::DBError("Tree find in db", query); MythDB::DBError("Tree find in db", query);
return ret; return ret;
} }
Expand Down Expand Up @@ -544,33 +549,35 @@ bool findInDB(const QString& url, ArticleType type)


RSSSite* findByURL(const QString& url, ArticleType type) RSSSite* findByURL(const QString& url, ArticleType type)
{ {
RSSSite *tmp = NULL;
MSqlQuery query(MSqlQuery::InitCon()); MSqlQuery query(MSqlQuery::InitCon());
query.prepare("SELECT name,thumbnail,author,description," query.prepare("SELECT name,thumbnail,author,description,"
"commandline,download,updated FROM internetcontent " "commandline,download,updated FROM internetcontent "
"WHERE commandline = :URL AND type = :TYPE " "WHERE commandline = :URL AND type = :TYPE "
"AND podcast = 1;"); "AND podcast = 1;");
query.bindValue(":URL", url); query.bindValue(":URL", url);
query.bindValue(":TYPE", type); query.bindValue(":TYPE", type);
if (!query.exec() || !query.isActive()) { if (!query.exec() || !query.next())
{
MythDB::DBError("RSS find in db", query); MythDB::DBError("RSS find in db", query);
RSSSite *tmp = new RSSSite(QString(), QString(), (ArticleType)0, QString(), tmp = new RSSSite(QString(), QString(), (ArticleType)0, QString(),
QString(), QString(), false, QString(), QString(), false,
QDateTime()); QDateTime());
return tmp;
} }
else else
query.next(); {
QString title = query.value(0).toString();
QString image = query.value(1).toString();
QString author = query.value(2).toString();
QString description = query.value(3).toString();
QString outurl = query.value(4).toString();
bool download = query.value(5).toInt();
QDateTime updated; query.value(6).toDate();


QString title = query.value(0).toString(); tmp = new RSSSite(title, image, type, description, outurl,
QString image = query.value(1).toString(); author, download, updated);
QString author = query.value(2).toString(); }
QString description = query.value(3).toString();
QString outurl = query.value(4).toString();
bool download = query.value(5).toInt();
QDateTime updated; query.value(6).toDate();


RSSSite *tmp = new RSSSite(title, image, type, description, outurl,
author, download, updated);
return tmp; return tmp;
} }


Expand Down
Expand Up @@ -74,9 +74,8 @@ QString FileServerHandler::LocalFilePath(const QUrl &url,
query.prepare("SELECT icon FROM channel WHERE icon LIKE :FILENAME ;"); query.prepare("SELECT icon FROM channel WHERE icon LIKE :FILENAME ;");
query.bindValue(":FILENAME", QString("%/") + file); query.bindValue(":FILENAME", QString("%/") + file);


if (query.exec() && query.isActive() && query.size()) if (query.exec() && query.next())
{ {
query.next();
lpath = query.value(0).toString(); lpath = query.value(0).toString();
} }
else else
Expand Down
6 changes: 2 additions & 4 deletions mythtv/libs/libmythtv/channelbase.cpp
Expand Up @@ -895,10 +895,9 @@ int ChannelBase::GetChanID() const
return -1; return -1;
} }


if (query.size() <= 0) if (!query.next())
return -1; return -1;


query.next();
return query.value(0).toInt(); return query.value(0).toInt();
} }


Expand Down Expand Up @@ -1108,9 +1107,8 @@ bool ChannelBase::CheckChannel(const QString &channum,
{ {
MythDB::DBError("checkchannel", query); MythDB::DBError("checkchannel", query);
} }
else if (query.size() > 0) else if (query.next())
{ {
query.next();
QString test = query.value(1).toString(); QString test = query.value(1).toString();
if (test != QString::null) if (test != QString::null)
inputName = test; inputName = test;
Expand Down
14 changes: 10 additions & 4 deletions mythtv/libs/libmythtv/channelgroupsettings.cpp
Expand Up @@ -43,12 +43,12 @@ void ChannelGroupStorage::Load(void)


if (!query.exec() || !query.isActive()) if (!query.exec() || !query.isActive())
MythDB::DBError("ChannelGroupStorage::Load", query); MythDB::DBError("ChannelGroupStorage::Load", query);
else else if (query.next())
{ {
query.next();
grpid = query.value(0).toUInt(); grpid = query.value(0).toUInt();


qstr = "SELECT * FROM channelgroup WHERE grpid = :GRPID AND chanid = :CHANID"; qstr = "SELECT * FROM channelgroup WHERE grpid = :GRPID AND "
"chanid = :CHANID";
query.prepare(qstr); query.prepare(qstr);
query.bindValue(":GRPID", grpid); query.bindValue(":GRPID", grpid);
query.bindValue(":CHANID", chanid); query.bindValue(":CHANID", chanid);
Expand Down Expand Up @@ -188,8 +188,14 @@ void ChannelGroupEditor::doDelete(void)
query.prepare("SELECT grpid FROM channelgroupnames WHERE name = :NAME;"); query.prepare("SELECT grpid FROM channelgroupnames WHERE name = :NAME;");
query.bindValue(":NAME", name); query.bindValue(":NAME", name);
if (!query.exec()) if (!query.exec())
{
MythDB::DBError("ChannelGroupEditor::doDelete", query); MythDB::DBError("ChannelGroupEditor::doDelete", query);
query.next(); return;
}

if (!query.next())
return;

uint grpid = query.value(0).toUInt(); uint grpid = query.value(0).toUInt();


// Delete channels from this group // Delete channels from this group
Expand Down
27 changes: 10 additions & 17 deletions mythtv/libs/libmythtv/channelutil.cpp
Expand Up @@ -622,9 +622,8 @@ int ChannelUtil::GetBetterMplexID(int current_mplexid,


if (!query.exec() || !query.isActive()) if (!query.exec() || !query.isActive())
MythDB::DBError("Getting mplexid global search", query); MythDB::DBError("Getting mplexid global search", query);
else if (query.size()) else if (query.next())
{ {
query.next();
q_networkid = query.value(0).toInt(); q_networkid = query.value(0).toInt();
q_transportid = query.value(1).toInt(); q_transportid = query.value(1).toInt();
} }
Expand Down Expand Up @@ -682,19 +681,17 @@ int ChannelUtil::GetBetterMplexID(int current_mplexid,
if (!query.exec() || !query.isActive()) if (!query.exec() || !query.isActive())
MythDB::DBError("Finding matching mplexid", query); MythDB::DBError("Finding matching mplexid", query);


if (query.size() == 1) if (query.size() == 1 && query.next())
{ {
LOG(VB_CHANSCAN, LOG_INFO, LOG(VB_CHANSCAN, LOG_INFO,
QString("GetBetterMplexID(): query#%1 qsize(%2) " QString("GetBetterMplexID(): query#%1 qsize(%2) "
"Returning %3") "Returning %3")
.arg(i).arg(query.size()).arg(current_mplexid)); .arg(i).arg(query.size()).arg(current_mplexid));
query.next();
return query.value(0).toInt(); return query.value(0).toInt();
} }


if (query.size() > 1) if (query.next())
{ {
query.next();
int ret = (i==0) ? current_mplexid : query.value(0).toInt(); int ret = (i==0) ? current_mplexid : query.value(0).toInt();
LOG(VB_CHANSCAN, LOG_INFO, LOG(VB_CHANSCAN, LOG_INFO,
QString("GetBetterMplexID(): query#%1 qsize(%2) " QString("GetBetterMplexID(): query#%1 qsize(%2) "
Expand Down Expand Up @@ -757,10 +754,10 @@ QString ChannelUtil::GetChannelStringField(int chan_id, const QString &field)
MythDB::DBError("Selecting channel/dtv_multiplex 1", query); MythDB::DBError("Selecting channel/dtv_multiplex 1", query);
return QString::null; return QString::null;
} }
if (!query.size())
if (!query.next())
return QString::null; return QString::null;


query.next();
return query.value(0).toString(); return query.value(0).toString();
} }


Expand Down Expand Up @@ -798,11 +795,9 @@ int ChannelUtil::GetSourceID(int db_mplexid)
return -1; return -1;
} }


if (query.size() > 0) if (query.next())
{
query.next();
return query.value(0).toInt(); return query.value(0).toInt();
}
return -1; return -1;
} }


Expand Down Expand Up @@ -1798,11 +1793,9 @@ int ChannelUtil::GetServiceVersion(int mplexid)
return false; return false;
} }


if (query.size() > 0) if (query.next())
{
query.next();
return query.value(0).toInt(); return query.value(0).toInt();
}
return -1; return -1;
} }


Expand Down
3 changes: 1 addition & 2 deletions mythtv/libs/libmythtv/dvbchannel.cpp
Expand Up @@ -956,10 +956,9 @@ int DVBChannel::GetChanID() const
return -1; return -1;
} }


if (query.size() <= 0) if (!query.next())
return -1; return -1;


query.next();
return query.value(0).toInt(); return query.value(0).toInt();
} }


Expand Down
5 changes: 4 additions & 1 deletion mythtv/libs/libmythtv/recordingrule.cpp
Expand Up @@ -726,7 +726,10 @@ unsigned RecordingRule::GetDefaultFilter(void)
MythDB::DBError("GetDefaultFilter", query); MythDB::DBError("GetDefaultFilter", query);
return 0; return 0;
} }
query.next();
if (!query.next())
return 0;

return query.value(0).toUInt(); return query.value(0).toUInt();
} }


Expand Down
3 changes: 1 addition & 2 deletions mythtv/libs/libmythtv/tv_rec.cpp
Expand Up @@ -2085,13 +2085,12 @@ bool TVRec::ShouldSwitchToAnotherCard(QString chanid)
"FROM channel " "FROM channel "
"WHERE channel.chanid = :CHANID"); "WHERE channel.chanid = :CHANID");
query.bindValue(":CHANID", chanid); query.bindValue(":CHANID", chanid);
if (!query.exec() || !query.isActive() || query.size() == 0) if (!query.exec() || !query.next())
{ {
MythDB::DBError("ShouldSwitchToAnotherCard", query); MythDB::DBError("ShouldSwitchToAnotherCard", query);
return false; return false;
} }


query.next();
QString channelname = query.value(0).toString(); QString channelname = query.value(0).toString();
QString callsign = query.value(1).toString(); QString callsign = query.value(1).toString();


Expand Down
3 changes: 1 addition & 2 deletions mythtv/libs/libmythtv/videosource.cpp
Expand Up @@ -675,9 +675,8 @@ bool VideoSourceEditor::cardTypesInclude(const int &sourceID,
query.bindValue(":SOURCEID", sourceID); query.bindValue(":SOURCEID", sourceID);
query.bindValue(":CARDTYPE", thecardtype); query.bindValue(":CARDTYPE", thecardtype);


if (query.exec() && query.isActive() && query.size() > 0) if (query.exec() && query.next())
{ {
query.next();
int count = query.value(0).toInt(); int count = query.value(0).toInt();


if (count > 0) if (count > 0)
Expand Down

0 comments on commit 29ca559

Please sign in to comment.