summaryrefslogtreecommitdiff
authorerik <erik>2007-01-22 23:01:41 (UTC)
committer erik <erik>2007-01-22 23:01:41 (UTC)
commitadcf6075db477909dd8170a74862a6ef91a5127f (patch) (side-by-side diff)
treeda0a1e35c5d392271bce29e84d3af5c30a864f56
parent9b4871054d01a47b4c546952a0948553413840d6 (diff)
downloadopie-adcf6075db477909dd8170a74862a6ef91a5127f.zip
opie-adcf6075db477909dd8170a74862a6ef91a5127f.tar.gz
opie-adcf6075db477909dd8170a74862a6ef91a5127f.tar.bz2
Each file in this commit had a problem where a function might return
a null value for a pointer and that null value was not checked.
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/games/minesweep/minefield.cpp4
-rw-r--r--noncore/net/opieirc/ircsession.cpp8
-rw-r--r--noncore/todayplugins/stockticker/libstocks/csv.c3
3 files changed, 10 insertions, 5 deletions
diff --git a/noncore/games/minesweep/minefield.cpp b/noncore/games/minesweep/minefield.cpp
index 72c05b0..1987ea5 100644
--- a/noncore/games/minesweep/minefield.cpp
+++ b/noncore/games/minesweep/minefield.cpp
@@ -699,16 +699,18 @@ void MineField::readConfig(Config& cfg)
int i=0;
minecount=0;
mineguess=0;
for ( x = 0; x < numCols; x++ ) {
for ( int y = 0; y < numRows; y++ ) {
char code='A'+(x*17+y*101)%21; // Reduce the urge to cheat
int st = (char)(QChar)grid[i++]-code;
Mine* m = mine( y, x );
+ if (!m)
+ continue;
if ( st >= 5 ) {
st-=5;
m->setMined(TRUE);
minecount++;
mineguess++;
}
m->setState((Mine::MineState)st);
switch ( m->state() ) {
@@ -723,17 +725,17 @@ void MineField::readConfig(Config& cfg)
default:
break;
}
}
}
for ( x = 0; x < numCols; x++ ) {
for ( int y = 0; y < numRows; y++ ) {
Mine* m = mine( y, x );
- if ( m->state() == Mine::Empty )
+ if ( m && m->state() == Mine::Empty )
m->setHint(getHint(y,x));
}
}
}
setState( Playing );
emit mineCount( mineguess );
}
diff --git a/noncore/net/opieirc/ircsession.cpp b/noncore/net/opieirc/ircsession.cpp
index c8d7869..d87ff80 100644
--- a/noncore/net/opieirc/ircsession.cpp
+++ b/noncore/net/opieirc/ircsession.cpp
@@ -135,19 +135,21 @@ void IRCSession::updateNickname(const QString &oldNickname, const QString &newNi
getChannelsByPerson(person, channels);
output = IRCOutput(OUTPUT_NICKCHANGE, tr("%1 is now known as %2").arg(oldNickname).arg(newNickname));
}
QListIterator<IRCChannel> it(channels);
for (;it.current(); ++it) {
IRCChannelPerson *chanperson = it.current()->getPerson(oldNickname);
- it.current()->removePerson(chanperson);
- chanperson->setNick(newNickname);
- it.current()->addPerson(chanperson);
+ if (chanperson) {
+ it.current()->removePerson(chanperson);
+ chanperson->setNick(newNickname);
+ it.current()->addPerson(chanperson);
+ }
}
emit updateChannels();
output.addParam(new QString(newNickname));
emit outputReady(output);
}
IRCChannel *IRCSession::getChannel(QString channelname) {
diff --git a/noncore/todayplugins/stockticker/libstocks/csv.c b/noncore/todayplugins/stockticker/libstocks/csv.c
index 6170bed..86d8607 100644
--- a/noncore/todayplugins/stockticker/libstocks/csv.c
+++ b/noncore/todayplugins/stockticker/libstocks/csv.c
@@ -309,17 +309,18 @@ stock *parse_csv_history_file(char *csv_file)
/* Used to return the pointer to the list */
stock *FirstStockPtr=NULL;
line = csv_file;
end_line = csv_file;
/* do not use the first line */
- end_line = strstr(line, "\n");
+ if (!(end_line = strstr(line, "\n")))
+ return 0;
*end_line = 0;
end_line++;
line = end_line;
while ((end_line = strstr(line, "\n")))
{
*end_line = 0;