Fixes from Klocwork analysis (http://www.klocwork.com/)

git-svn-id: https://mumble.svn.sourceforge.net/svnroot/mumble/trunk@793 05730e5d-ab1b-0410-a4ac-84af385074fa
This commit is contained in:
Thorvald Natvig 2007-10-17 23:09:45 +00:00
parent 4c6e200011
commit dff89baf2a
9 changed files with 84 additions and 45 deletions

View File

@ -342,6 +342,10 @@ void glXSwapBuffers(Display * dpy, GLXDrawable draw) {
if ((nelem == 1) && (myctx)) {
c = (Context *) malloc(sizeof(Context));
if (!c) {
ods("malloc failure");
return;
}
c->next = contexts;
c->glctx = myctx;

View File

@ -391,6 +391,8 @@ void GlobalShortcutX::inputReadyRead(int) {
remap();
QFile *f=qobject_cast<QFile *>(sender()->parent());
if (!f)
return;
while (f->read(reinterpret_cast<char *>(&ev), sizeof(ev)) == sizeof(ev)) {
if (ev.type != EV_KEY)
continue;

View File

@ -478,9 +478,7 @@ void MainWindow::on_qmChannel_aboutToShow() {
}
if (! c)
c = Channel::get(0);
unlinkall = (home->qhLinks.count() > 0);
if (home != c) {
if (c->allLinks().contains(home))
unlink = true;
@ -805,6 +803,8 @@ void MainWindow::pushLink(bool down) {
return;
GlobalShortcut *gs = qobject_cast<GlobalShortcut *>(sender());
if (! gs)
return;
int idx = gs->data().toInt();
Channel *home = ClientPlayer::get(g.uiSession)->cChannel;

View File

@ -220,18 +220,27 @@ void MainWindow::msgPlayerRename(Connection *, MessagePlayerRename *msg) {
}
void MainWindow::msgChannelAdd(Connection *, MessageChannelAdd *msg) {
if (msg->iId == 0)
return;
Channel *p = Channel::get(msg->iParent);
if (p)
pmModel->addChannel(msg->iId, p, msg->qsName);
}
void MainWindow::msgChannelRemove(Connection *, MessageChannelRemove *msg) {
if (msg->iId == 0)
return;
Channel *c = Channel::get(msg->iId);
if (c)
pmModel->removeChannel(c);
}
void MainWindow::msgChannelMove(Connection *, MessageChannelMove *msg) {
if (msg->iId == 0)
return;
Channel *c = Channel::get(msg->iId);
Channel *p = Channel::get(msg->iParent);
if (c && p)
@ -239,6 +248,9 @@ void MainWindow::msgChannelMove(Connection *, MessageChannelMove *msg) {
}
void MainWindow::msgChannelRename(Connection *, MessageChannelRename *msg) {
if (msg->iId == 0)
return;
Channel *c = Channel::get(msg->iId);
if (c && c->cParent)
pmModel->renameChannel(c, msg->qsName);

View File

@ -129,6 +129,9 @@ int ModelItem::rowOfSelf() const {
ModelItem *p = parent();
Q_ASSERT(p);
if (!p)
return 0;
if (pPlayer)
return p->rowOf(pPlayer);
@ -231,6 +234,8 @@ QModelIndex PlayerModel::index(ClientPlayer *p, int column) const {
ModelItem *item = ModelItem::c_qhPlayers.value(p);
Q_ASSERT(p);
Q_ASSERT(item);
if (!p || ! item)
return QModelIndex();
QModelIndex idx=createIndex(item->rowOfSelf(), column, item);
return idx;
}
@ -239,7 +244,7 @@ QModelIndex PlayerModel::index(Channel *c) const {
ModelItem *item = ModelItem::c_qhChannels.value(c);
Q_ASSERT(c);
Q_ASSERT(item);
if (!c || ! c->parent())
if (!item || !c || ! c->parent())
return QModelIndex();
QModelIndex idx=createIndex(item->rowOfSelf(), 0, item);
return idx;
@ -446,6 +451,9 @@ void PlayerModel::unbugHide(const QModelIndex &idx) {
void PlayerModel::hidePlayer(ClientPlayer *p) {
Channel *c = p->cChannel;
ModelItem *item = ModelItem::c_qhChannels.value(c);
if (! item)
return;
int row = item->rowOf(p);
@ -469,6 +477,9 @@ void PlayerModel::showPlayer(ClientPlayer *p, Channel *c) {
Q_ASSERT(c);
Q_ASSERT(item);
if (!c || !p || ! item)
return;
int row = item->insertIndex(p);
beginInsertRows(index(c), row, row);
@ -576,6 +587,9 @@ void PlayerModel::showChannel(Channel *c, Channel *p) {
Q_ASSERT(c);
Q_ASSERT(item);
if (!c || !p || ! item)
return;
int row = item->insertIndex(c);
beginInsertRows(index(p), row, row);
@ -593,6 +607,9 @@ void PlayerModel::hideChannel(Channel *c) {
Channel *p = c->cParent;
ModelItem *item = ModelItem::c_qhChannels.value(p);
if (! item)
return;
int row = item->rowOf(c);
unbugHide(index(c));
@ -621,6 +638,8 @@ void PlayerModel::removeChannel(Channel *c) {
Channel *subc;
item=ModelItem::c_qhChannels.value(c);
if (! item)
return;
foreach(subc, item->qlChannels)
removeChannel(subc);
@ -696,6 +715,9 @@ Channel *PlayerModel::getChannel(const QModelIndex &idx) const {
Channel *PlayerModel::getSubChannel(Channel *p, int idx) const {
ModelItem *item=ModelItem::c_qhChannels.value(p);
if (! item)
return NULL;
if (idx < 0 || idx >= item->qlChannels.count())
return NULL;
return item->qlChannels.at(idx);
@ -772,6 +794,9 @@ bool PlayerModel::dropMimeData(const QMimeData *md, Qt::DropAction, int, int, co
c = getChannel(p);
}
if (! c)
return false;
if (! isChannel) {
MessagePlayerMove mpm;
mpm.uiVictim = uiSession;

View File

@ -494,14 +494,21 @@ void MurmurDBus::getACL(int id, const QDBusMessage &msg, QList<ACLInfo> &acls, Q
foreach(name, allnames) {
Group *g = cChannel->qhGroups.value(name);
Group *pg = p ? Group::getGroup(p, name) : NULL;
GroupInfo gi(g);
if (!g && ! pg)
continue;
GroupInfo gi(g ? g : pg);
QSet<int> members;
if (pg) {
if (pg)
members = pg->members();
gi.inherited = pg->bInheritable;
if (g) {
gi.add = g->qsAdd.toList();
gi.remove = g->qsRemove.toList();
gi.inherited = false;
members+=g->qsAdd;
members-=g->qsRemove;
} else {
gi.inherited = true;
}
members+=g->qsAdd;
members-=g->qsRemove;
gi.members = members.toList();
groups << gi;
}
@ -659,8 +666,6 @@ GroupInfo::GroupInfo(Group *g) {
name = g->qsName;
inherit = g->bInherit;
inheritable = g->bInheritable;
add = g->qsAdd.toList();
remove = g->qsRemove.toList();
members.clear();
}

View File

@ -569,6 +569,8 @@ void Server::msgChannelLink(Connection *cCon, MessageChannelLink *msg) {
Channel *l = (msg->qlTargets.count() == 1) ? qhChannels.value(msg->qlTargets[0]) : NULL;
QSet<Channel *> oldset = c->qhLinks.keys().toSet();
switch (msg->ltType) {
case MessageChannelLink::Link:
if (!l)
@ -577,43 +579,31 @@ void Server::msgChannelLink(Connection *cCon, MessageChannelLink *msg) {
PERM_DENIED(uSource, l, ChanACL::LinkChannel);
return;
}
break;
case MessageChannelLink::Unlink:
if (!l)
return;
break;
case MessageChannelLink::UnlinkAll:
if (msg->qlTargets.count() > 0)
return;
break;
default:
if (msg->qlTargets.count() <= 0)
return;
}
QSet<Channel *> oldset = c->qhLinks.keys().toSet();
switch (msg->ltType) {
case MessageChannelLink::UnlinkAll:
c->unlink(NULL);
removeLink(c, NULL);
dbus->channelStateChanged(c);
log(uSource, "Unlinked all from channel %s", qPrintable(c->qsName));
sendAll(msg);
return;
case MessageChannelLink::Link:
c->link(l);
addLink(c, l);
dbus->channelStateChanged(c);
log(uSource, "Linked channel %s to %s", qPrintable(c->qsName),qPrintable(l->qsName));
break;
case MessageChannelLink::Unlink:
if (!l)
return;
c->unlink(l);
removeLink(c, l);
dbus->channelStateChanged(c);
log(uSource, "Unlinked channel %s from %s", qPrintable(c->qsName), qPrintable(l->qsName));
break;
case MessageChannelLink::UnlinkAll:
if (msg->qlTargets.count() > 0)
return;
c->unlink(NULL);
removeLink(c, NULL);
dbus->channelStateChanged(c);
log(uSource, "Unlinked all from channel %s", qPrintable(c->qsName));
sendAll(msg);
return;
case MessageChannelLink::PushLink:
if (msg->qlTargets.count() <= 0)
return;
foreach(int tid, msg->qlTargets) {
l=qhChannels.value(tid);
if (l && hasPermission(uSource, l, ChanACL::LinkChannel))
@ -621,12 +611,17 @@ void Server::msgChannelLink(Connection *cCon, MessageChannelLink *msg) {
}
break;
case MessageChannelLink::PushUnlink:
if (msg->qlTargets.count() <= 0)
return;
foreach(int tid, msg->qlTargets) {
l=qhChannels.value(tid);
if (l)
c->playerUnlink(l, uSource);
}
break;
default:
if (msg->qlTargets.count() <= 0)
return;
}
QSet<Channel *> newset = c->qhLinks.keys().toSet();

View File

@ -489,13 +489,16 @@ void Server::sslError(const QList<QSslError> &errors) {
}
}
if (ok) {
Connection *c = dynamic_cast<User *>(sender());
c->proceedAnyway();
Connection *c = qobject_cast<User *>(sender());
if (c)
c->proceedAnyway();
}
}
void Server::connectionClosed(QString reason) {
Connection *c = dynamic_cast<Connection *>(sender());
Connection *c = qobject_cast<Connection *>(sender());
if (! c)
return;
User *u = static_cast<User *>(c);
log(u, "Connection closed: %s", qPrintable(reason));
@ -582,11 +585,6 @@ void Server::doSync(unsigned int id) {
}
}
void Server::sendMessage(unsigned int id, Message *mMsg) {
Connection *c = qhUsers.value(id);
sendMessage(c, mMsg);
}
void Server::sendMessage(Connection *c, Message *mMsg) {
c->sendMessage(mMsg);
}

View File

@ -180,10 +180,8 @@ class Server : public QThread, public MessageHandler {
void sendAll(Message *);
void sendExcept(Message *, Connection *);
void sendMessage(unsigned int, Message *);
void sendMessage(Connection *, Message *);
// void log(QString s, Connection *c = NULL);
__attribute__((format(printf, 2, 3))) void log(const char *format, ...);
__attribute__((format(printf, 3, 4))) void log(User *u, const char *format, ...);