author | erik <erik> | 2007-02-08 01:45:16 (UTC) |
---|---|---|
committer | erik <erik> | 2007-02-08 01:45:16 (UTC) |
commit | 2e497f7cae45184184e2416114887095735958f5 (patch) (unidiff) | |
tree | a6b399d9bce5854dc7ad6c985b48965cf20680b0 | |
parent | 853b61f97e718359bef95147ab3c7beb0705acda (diff) | |
download | opie-2e497f7cae45184184e2416114887095735958f5.zip opie-2e497f7cae45184184e2416114887095735958f5.tar.gz opie-2e497f7cae45184184e2416114887095735958f5.tar.bz2 |
Each file in this commit has a problem where it is possible to dereference
a pointer without that pointer being valid. This commit fixes each instance
of that.
6 files changed, 46 insertions, 13 deletions
diff --git a/core/multimedia/opieplayer/modplug/sndfile.cpp b/core/multimedia/opieplayer/modplug/sndfile.cpp index 1d0d610..799555c 100644 --- a/core/multimedia/opieplayer/modplug/sndfile.cpp +++ b/core/multimedia/opieplayer/modplug/sndfile.cpp | |||
@@ -1739,7 +1739,10 @@ BOOL CSoundFile::SetPatternName(UINT nPat, LPCSTR lpszName) | |||
1739 | { | 1739 | { |
1740 | char szName[MAX_PATTERNNAME] = ""; // changed from CHAR | 1740 | char szName[MAX_PATTERNNAME] = ""; // changed from CHAR |
1741 | if (nPat >= MAX_PATTERNS) return FALSE; | 1741 | if (nPat >= MAX_PATTERNS) return FALSE; |
1742 | if (lpszName) lstrcpyn(szName, lpszName, MAX_PATTERNNAME); | 1742 | if (lpszName) |
1743 | lstrcpyn(szName, lpszName, MAX_PATTERNNAME); | ||
1744 | else | ||
1745 | return FALSE; | ||
1743 | szName[MAX_PATTERNNAME-1] = 0; | 1746 | szName[MAX_PATTERNNAME-1] = 0; |
1744 | if (!m_lpszPatternNames) m_nPatternNames = 0; | 1747 | if (!m_lpszPatternNames) m_nPatternNames = 0; |
1745 | if (nPat >= m_nPatternNames) | 1748 | if (nPat >= m_nPatternNames) |
diff --git a/core/multimedia/opieplayer/vorbis/tremor/block.c b/core/multimedia/opieplayer/vorbis/tremor/block.c index 8949253..7b5531b 100644 --- a/core/multimedia/opieplayer/vorbis/tremor/block.c +++ b/core/multimedia/opieplayer/vorbis/tremor/block.c | |||
@@ -226,8 +226,10 @@ void vorbis_dsp_clear(vorbis_dsp_state *v){ | |||
226 | private_state *b=(private_state *)v->backend_state; | 226 | private_state *b=(private_state *)v->backend_state; |
227 | 227 | ||
228 | if(v->pcm){ | 228 | if(v->pcm){ |
229 | if (vi) { | ||
229 | for(i=0;i<vi->channels;i++) | 230 | for(i=0;i<vi->channels;i++) |
230 | if(v->pcm[i])_ogg_free(v->pcm[i]); | 231 | if(v->pcm[i])_ogg_free(v->pcm[i]); |
232 | } | ||
231 | _ogg_free(v->pcm); | 233 | _ogg_free(v->pcm); |
232 | if(v->pcmret)_ogg_free(v->pcmret); | 234 | if(v->pcmret)_ogg_free(v->pcmret); |
233 | } | 235 | } |
diff --git a/core/multimedia/opieplayer/vorbis/tremor/info.c b/core/multimedia/opieplayer/vorbis/tremor/info.c index 941695e..3499ae4 100644 --- a/core/multimedia/opieplayer/vorbis/tremor/info.c +++ b/core/multimedia/opieplayer/vorbis/tremor/info.c | |||
@@ -97,9 +97,9 @@ void vorbis_comment_clear(vorbis_comment *vc){ | |||
97 | if(vc->user_comments)_ogg_free(vc->user_comments); | 97 | if(vc->user_comments)_ogg_free(vc->user_comments); |
98 | if(vc->comment_lengths)_ogg_free(vc->comment_lengths); | 98 | if(vc->comment_lengths)_ogg_free(vc->comment_lengths); |
99 | if(vc->vendor)_ogg_free(vc->vendor); | 99 | if(vc->vendor)_ogg_free(vc->vendor); |
100 | } | ||
101 | memset(vc,0,sizeof(*vc)); | 100 | memset(vc,0,sizeof(*vc)); |
102 | } | 101 | } |
102 | } | ||
103 | 103 | ||
104 | /* blocksize 0 is guaranteed to be short, 1 is guarantted to be long. | 104 | /* blocksize 0 is guaranteed to be short, 1 is guarantted to be long. |
105 | They may be equal, but short will never ge greater than long */ | 105 | They may be equal, but short will never ge greater than long */ |
diff --git a/noncore/apps/opie-write/qrichtext.cpp b/noncore/apps/opie-write/qrichtext.cpp index f040f1e..768da44 100644 --- a/noncore/apps/opie-write/qrichtext.cpp +++ b/noncore/apps/opie-write/qrichtext.cpp | |||
@@ -189,9 +189,12 @@ QTextDeleteCommand::~QTextDeleteCommand() | |||
189 | QTextCursor *QTextDeleteCommand::execute( QTextCursor *c ) | 189 | QTextCursor *QTextDeleteCommand::execute( QTextCursor *c ) |
190 | { | 190 | { |
191 | QTextParagraph *s = doc ? doc->paragAt( id ) : parag; | 191 | QTextParagraph *s = doc ? doc->paragAt( id ) : parag; |
192 | if ( !s ) { | 192 | if ( !s && doc ) { |
193 | owarn << "can't locate parag at " << id << ", last parag: " << doc->lastParagraph()->paragId() << "" << oendl; | 193 | owarn << "can't locate parag at " << id << ", last parag: " << doc->lastParagraph()->paragId() << "" << oendl; |
194 | return 0; | 194 | return 0; |
195 | } else if ( !doc ) { | ||
196 | owarn << "No valid doc" << oendl; | ||
197 | return 0; | ||
195 | } | 198 | } |
196 | 199 | ||
197 | cursor.setParagraph( s ); | 200 | cursor.setParagraph( s ); |
@@ -217,9 +220,12 @@ QTextCursor *QTextDeleteCommand::execute( QTextCursor *c ) | |||
217 | QTextCursor *QTextDeleteCommand::unexecute( QTextCursor *c ) | 220 | QTextCursor *QTextDeleteCommand::unexecute( QTextCursor *c ) |
218 | { | 221 | { |
219 | QTextParagraph *s = doc ? doc->paragAt( id ) : parag; | 222 | QTextParagraph *s = doc ? doc->paragAt( id ) : parag; |
220 | if ( !s ) { | 223 | if ( !s && doc ) { |
221 | owarn << "can't locate parag at " << id << ", last parag: " << doc->lastParagraph()->paragId() << "" << oendl; | 224 | owarn << "can't locate parag at " << id << ", last parag: " << doc->lastParagraph()->paragId() << "" << oendl; |
222 | return 0; | 225 | return 0; |
226 | } else if ( !doc ) { | ||
227 | owarn << "No valid doc" << oendl; | ||
228 | return 0; | ||
223 | } | 229 | } |
224 | 230 | ||
225 | cursor.setParagraph( s ); | 231 | cursor.setParagraph( s ); |
@@ -233,6 +239,9 @@ QTextCursor *QTextDeleteCommand::unexecute( QTextCursor *c ) | |||
233 | c->setIndex( index ); | 239 | c->setIndex( index ); |
234 | for ( int i = 0; i < (int)text.size(); ++i ) | 240 | for ( int i = 0; i < (int)text.size(); ++i ) |
235 | c->gotoNextLetter(); | 241 | c->gotoNextLetter(); |
242 | } else { | ||
243 | owarn << "No valid cursor" << oendl; | ||
244 | return 0; | ||
236 | } | 245 | } |
237 | 246 | ||
238 | if ( !styleInformation.isEmpty() ) { | 247 | if ( !styleInformation.isEmpty() ) { |
@@ -1392,10 +1401,21 @@ struct Q_EXPORT QTextDocumentTag { | |||
1392 | }; | 1401 | }; |
1393 | 1402 | ||
1394 | 1403 | ||
1395 | #define NEWPAR do{ if ( !hasNewPar) { \ | 1404 | #define NEWPAR do { \ |
1405 | if ( !hasNewPar) { \ | ||
1406 | if ( !curpar ) { \ | ||
1407 | owarn << "no current paragraph" << oendl; \ | ||
1408 | return; \ | ||
1409 | } \ | ||
1396 | if ( !textEditMode && curpar && curpar->length()>1 && curpar->at( curpar->length()-2)->c == QChar_linesep ) \ | 1410 | if ( !textEditMode && curpar && curpar->length()>1 && curpar->at( curpar->length()-2)->c == QChar_linesep ) \ |
1397 | curpar->remove( curpar->length()-2, 1 ); \ | 1411 | curpar->remove( curpar->length()-2, 1 ); \ |
1398 | curpar = createParagraph( this, curpar, curpar->next() ); styles.append( vec ); vec = 0;} \ | 1412 | curpar = createParagraph( this, curpar, curpar->next() ); styles.append( vec ); \ |
1413 | if ( !curpar ) { \ | ||
1414 | owarn << "failed in creating a new paragraph" << oendl; \ | ||
1415 | return; \ | ||
1416 | } \ | ||
1417 | vec = 0; \ | ||
1418 | } \ | ||
1399 | hasNewPar = TRUE; \ | 1419 | hasNewPar = TRUE; \ |
1400 | curpar->rtext = TRUE; \ | 1420 | curpar->rtext = TRUE; \ |
1401 | curpar->align = curtag.alignment; \ | 1421 | curpar->align = curtag.alignment; \ |
@@ -1403,14 +1423,14 @@ struct Q_EXPORT QTextDocumentTag { | |||
1403 | curpar->litem = ( curtag.style->displayMode() == QStyleSheetItem::DisplayListItem ); \ | 1423 | curpar->litem = ( curtag.style->displayMode() == QStyleSheetItem::DisplayListItem ); \ |
1404 | curpar->str->setDirection( (QChar::Direction)curtag.direction ); \ | 1424 | curpar->str->setDirection( (QChar::Direction)curtag.direction ); \ |
1405 | space = TRUE; \ | 1425 | space = TRUE; \ |
1406 | delete vec; vec = new QPtrVector<QStyleSheetItem>( (uint)tags.count() + 1); \ | 1426 | delete vec; \ |
1427 | vec = new QPtrVector<QStyleSheetItem>( (uint)tags.count() + 1); \ | ||
1407 | int i = 0; \ | 1428 | int i = 0; \ |
1408 | for ( QValueStack<QTextDocumentTag>::Iterator it = tags.begin(); it != tags.end(); ++it ) \ | 1429 | for ( QValueStack<QTextDocumentTag>::Iterator it = tags.begin(); it != tags.end(); ++it ) \ |
1409 | vec->insert( i++, (*it).style ); \ | 1430 | vec->insert( i++, (*it).style ); \ |
1410 | vec->insert( i, curtag.style ); \ | 1431 | vec->insert( i, curtag.style ); \ |
1411 | }while(FALSE) | 1432 | }while(FALSE) |
1412 | 1433 | ||
1413 | |||
1414 | void QTextDocument::setRichText( const QString &text, const QString &context ) | 1434 | void QTextDocument::setRichText( const QString &text, const QString &context ) |
1415 | { | 1435 | { |
1416 | if ( !context.isEmpty() ) | 1436 | if ( !context.isEmpty() ) |
@@ -1895,8 +1915,11 @@ void QTextDocument::setRichTextMarginsInternal( QPtrList< QPtrVector<QStyleSheet | |||
1895 | } | 1915 | } |
1896 | 1916 | ||
1897 | int i, mar; | 1917 | int i, mar; |
1898 | QStyleSheetItem* mainStyle = curStyle->size() ? (*curStyle)[curStyle->size()-1] : 0; | 1918 | QStyleSheetItem* mainStyle = (*curStyle)[curStyle->size()-1]; |
1899 | if ( mainStyle && mainStyle->displayMode() == QStyleSheetItem::DisplayListItem ) | 1919 | if ( !mainStyle ) |
1920 | return; | ||
1921 | |||
1922 | if ( mainStyle->displayMode() == QStyleSheetItem::DisplayListItem ) | ||
1900 | stylesPar->setListItem( TRUE ); | 1923 | stylesPar->setListItem( TRUE ); |
1901 | int numLists = 0; | 1924 | int numLists = 0; |
1902 | for ( i = 0; i < (int)curStyle->size(); ++i ) { | 1925 | for ( i = 0; i < (int)curStyle->size(); ++i ) { |
@@ -5341,7 +5364,7 @@ int QTextFormatterBreakWords::format( QTextDocument *doc, QTextParagraph *parag, | |||
5341 | if ( c ) | 5364 | if ( c ) |
5342 | lastChr = c->c; | 5365 | lastChr = c->c; |
5343 | // ### next line should not be needed | 5366 | // ### next line should not be needed |
5344 | if ( painter ) | 5367 | if ( c && painter ) |
5345 | c->format()->setPainter( painter ); | 5368 | c->format()->setPainter( painter ); |
5346 | c = &string->at( i ); | 5369 | c = &string->at( i ); |
5347 | c->rightToLeft = FALSE; | 5370 | c->rightToLeft = FALSE; |
diff --git a/noncore/settings/networksettings2/opietooth2/OTSDPAttribute.cpp b/noncore/settings/networksettings2/opietooth2/OTSDPAttribute.cpp index 9069c09..3fd877f 100644 --- a/noncore/settings/networksettings2/opietooth2/OTSDPAttribute.cpp +++ b/noncore/settings/networksettings2/opietooth2/OTSDPAttribute.cpp | |||
@@ -295,6 +295,9 @@ UUIDVector OTSDPAttribute::getAllUUIDs() { | |||
295 | subAttributes = getAlternative(); | 295 | subAttributes = getAlternative(); |
296 | } | 296 | } |
297 | 297 | ||
298 | if (!subAttributes) | ||
299 | return 0; | ||
300 | |||
298 | int os; | 301 | int os; |
299 | for( unsigned int i = 0; i < subAttributes->count(); i++ ) { | 302 | for( unsigned int i = 0; i < subAttributes->count(); i++ ) { |
300 | UUIDVector subUUIDs = (*subAttributes)[i]->getAllUUIDs(); | 303 | UUIDVector subUUIDs = (*subAttributes)[i]->getAllUUIDs(); |
diff --git a/noncore/settings/packagemanager/oipkgconfigdlg.cpp b/noncore/settings/packagemanager/oipkgconfigdlg.cpp index d014378..78a18f7 100644 --- a/noncore/settings/packagemanager/oipkgconfigdlg.cpp +++ b/noncore/settings/packagemanager/oipkgconfigdlg.cpp | |||
@@ -436,7 +436,9 @@ void OIpkgConfigDlg::initData() | |||
436 | } | 436 | } |
437 | 437 | ||
438 | // Get Ipkg execution options | 438 | // Get Ipkg execution options |
439 | int options = m_ipkg->ipkgExecOptions(); | 439 | int options = 0; |
440 | if ( m_ipkg ) | ||
441 | options = m_ipkg->ipkgExecOptions(); | ||
440 | if ( options & FORCE_DEPENDS ) | 442 | if ( options & FORCE_DEPENDS ) |
441 | m_optForceDepends->setChecked( true ); | 443 | m_optForceDepends->setChecked( true ); |
442 | if ( options & FORCE_REINSTALL ) | 444 | if ( options & FORCE_REINSTALL ) |
@@ -450,7 +452,7 @@ void OIpkgConfigDlg::initData() | |||
450 | if ( options & FORCE_VERBOSE_WGET ) | 452 | if ( options & FORCE_VERBOSE_WGET ) |
451 | m_optVerboseWget->setChecked( true ); | 453 | m_optVerboseWget->setChecked( true ); |
452 | 454 | ||
453 | m_optVerboseIpkg->setCurrentItem( m_ipkg->ipkgExecVerbosity() ); | 455 | m_optVerboseIpkg->setCurrentItem( ( m_ipkg ? m_ipkg->ipkgExecVerbosity() : 0 ) ); |
454 | } | 456 | } |
455 | 457 | ||
456 | void OIpkgConfigDlg::slotServerSelected( int index ) | 458 | void OIpkgConfigDlg::slotServerSelected( int index ) |