summaryrefslogtreecommitdiff
authorerik <erik>2007-01-22 23:01:41 (UTC)
committer erik <erik>2007-01-22 23:01:41 (UTC)
commitadcf6075db477909dd8170a74862a6ef91a5127f (patch) (unidiff)
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
@@ -691,57 +691,59 @@ void MineField::readConfig(Config& cfg)
691 lev = cfg.readNumEntry("Level",1); 691 lev = cfg.readNumEntry("Level",1);
692 setup(lev); 692 setup(lev);
693 flagAction = NoAction; 693 flagAction = NoAction;
694 ignoreClick = FALSE; 694 ignoreClick = FALSE;
695 currRow = currCol = 0; 695 currRow = currCol = 0;
696 QString grid = cfg.readEntry("Grid"); 696 QString grid = cfg.readEntry("Grid");
697 int x; 697 int x;
698 if ( !grid.isEmpty() ) { 698 if ( !grid.isEmpty() ) {
699 int i=0; 699 int i=0;
700 minecount=0; 700 minecount=0;
701 mineguess=0; 701 mineguess=0;
702 for ( x = 0; x < numCols; x++ ) { 702 for ( x = 0; x < numCols; x++ ) {
703 for ( int y = 0; y < numRows; y++ ) { 703 for ( int y = 0; y < numRows; y++ ) {
704 char code='A'+(x*17+y*101)%21; // Reduce the urge to cheat 704 char code='A'+(x*17+y*101)%21; // Reduce the urge to cheat
705 int st = (char)(QChar)grid[i++]-code; 705 int st = (char)(QChar)grid[i++]-code;
706 Mine* m = mine( y, x ); 706 Mine* m = mine( y, x );
707 if (!m)
708 continue;
707 if ( st >= 5 ) { 709 if ( st >= 5 ) {
708 st-=5; 710 st-=5;
709 m->setMined(TRUE); 711 m->setMined(TRUE);
710 minecount++; 712 minecount++;
711 mineguess++; 713 mineguess++;
712 } 714 }
713 m->setState((Mine::MineState)st); 715 m->setState((Mine::MineState)st);
714 switch ( m->state() ) { 716 switch ( m->state() ) {
715 case Mine::Flagged: 717 case Mine::Flagged:
716 if (m->isMined()) 718 if (m->isMined())
717 minecount--; 719 minecount--;
718 mineguess--; 720 mineguess--;
719 break; 721 break;
720 case Mine::Empty: 722 case Mine::Empty:
721 --nonminecount; 723 --nonminecount;
722 break; 724 break;
723 default: 725 default:
724 break; 726 break;
725 } 727 }
726 } 728 }
727 } 729 }
728 for ( x = 0; x < numCols; x++ ) { 730 for ( x = 0; x < numCols; x++ ) {
729 for ( int y = 0; y < numRows; y++ ) { 731 for ( int y = 0; y < numRows; y++ ) {
730 Mine* m = mine( y, x ); 732 Mine* m = mine( y, x );
731 if ( m->state() == Mine::Empty ) 733 if ( m && m->state() == Mine::Empty )
732 m->setHint(getHint(y,x)); 734 m->setHint(getHint(y,x));
733 } 735 }
734 } 736 }
735 } 737 }
736 setState( Playing ); 738 setState( Playing );
737 emit mineCount( mineguess ); 739 emit mineCount( mineguess );
738} 740}
739 741
740QSize MineField::sizeHint() const 742QSize MineField::sizeHint() const
741{ 743{
742 if ( qApp->desktop()->width() >= 240 ) 744 if ( qApp->desktop()->width() >= 240 )
743 return QSize(200,200); 745 return QSize(200,200);
744 else 746 else
745 return QSize(160, 160); 747 return QSize(160, 160);
746} 748}
747 749
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
@@ -127,35 +127,37 @@ void IRCSession::updateNickname(const QString &oldNickname, const QString &newNi
127 127
128 else { 128 else {
129 IRCPerson *person = getPerson(oldNickname); 129 IRCPerson *person = getPerson(oldNickname);
130 130
131 if(!person) { 131 if(!person) {
132 emit outputReady(IRCOutput(OUTPUT_ERROR, tr("Nickname change of an unknown person"))); 132 emit outputReady(IRCOutput(OUTPUT_ERROR, tr("Nickname change of an unknown person")));
133 return; 133 return;
134 } 134 }
135 135
136 getChannelsByPerson(person, channels); 136 getChannelsByPerson(person, channels);
137 output = IRCOutput(OUTPUT_NICKCHANGE, tr("%1 is now known as %2").arg(oldNickname).arg(newNickname)); 137 output = IRCOutput(OUTPUT_NICKCHANGE, tr("%1 is now known as %2").arg(oldNickname).arg(newNickname));
138 } 138 }
139 139
140 QListIterator<IRCChannel> it(channels); 140 QListIterator<IRCChannel> it(channels);
141 for (;it.current(); ++it) { 141 for (;it.current(); ++it) {
142 IRCChannelPerson *chanperson = it.current()->getPerson(oldNickname); 142 IRCChannelPerson *chanperson = it.current()->getPerson(oldNickname);
143 it.current()->removePerson(chanperson); 143 if (chanperson) {
144 chanperson->setNick(newNickname); 144 it.current()->removePerson(chanperson);
145 it.current()->addPerson(chanperson); 145 chanperson->setNick(newNickname);
146 it.current()->addPerson(chanperson);
147 }
146 } 148 }
147 149
148 emit updateChannels(); 150 emit updateChannels();
149 output.addParam(new QString(newNickname)); 151 output.addParam(new QString(newNickname));
150 emit outputReady(output); 152 emit outputReady(output);
151} 153}
152 154
153IRCChannel *IRCSession::getChannel(QString channelname) { 155IRCChannel *IRCSession::getChannel(QString channelname) {
154 QListIterator<IRCChannel> it(m_channels); 156 QListIterator<IRCChannel> it(m_channels);
155 for (; it.current(); ++it) { 157 for (; it.current(); ++it) {
156 if (it.current()->channelname() == channelname) { 158 if (it.current()->channelname() == channelname) {
157 return it.current(); 159 return it.current();
158 } 160 }
159 } 161 }
160 return 0; 162 return 0;
161} 163}
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
@@ -301,33 +301,34 @@ stock *parse_csv_history_file(char *csv_file)
301 301
302 char *date; 302 char *date;
303 303
304 int i; 304 int i;
305 int test; 305 int test;
306 306
307 stock *StockPtr=NULL; 307 stock *StockPtr=NULL;
308 stock *LastStockPtr=NULL; 308 stock *LastStockPtr=NULL;
309 309
310 /* Used to return the pointer to the list */ 310 /* Used to return the pointer to the list */
311 stock *FirstStockPtr=NULL; 311 stock *FirstStockPtr=NULL;
312 312
313 line = csv_file; 313 line = csv_file;
314 end_line = csv_file; 314 end_line = csv_file;
315 315
316 /* do not use the first line */ 316 /* do not use the first line */
317 end_line = strstr(line, "\n"); 317 if (!(end_line = strstr(line, "\n")))
318 return 0;
318 *end_line = 0; 319 *end_line = 0;
319 end_line++; 320 end_line++;
320 line = end_line; 321 line = end_line;
321 322
322 while ((end_line = strstr(line, "\n"))) 323 while ((end_line = strstr(line, "\n")))
323 { 324 {
324 *end_line = 0; 325 *end_line = 0;
325 326
326 StockPtr = malloc_stock(); 327 StockPtr = malloc_stock();
327 328
328 /* Date */ 329 /* Date */
329 ptr = strtok(line, ","); 330 ptr = strtok(line, ",");
330 if (!ptr) return 0; 331 if (!ptr) return 0;
331 332
332 sscanf(ptr,"%d-%3s-%d",&day,smonth,&year); 333 sscanf(ptr,"%d-%3s-%d",&day,smonth,&year);
333 334