mirror of
https://github.com/mumble-voip/mumble.git
synced 2025-10-26 11:19:16 +00:00
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:
parent
4c6e200011
commit
dff89baf2a
@ -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;
|
||||
|
||||
@ -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;
|
||||
|
||||
@ -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;
|
||||
|
||||
|
||||
@ -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);
|
||||
|
||||
@ -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;
|
||||
|
||||
@ -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();
|
||||
}
|
||||
|
||||
|
||||
@ -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();
|
||||
|
||||
@ -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);
|
||||
}
|
||||
|
||||
@ -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, ...);
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user