Go to:
Gentoo Home
Documentation
Forums
Lists
Bugs
Planet
Store
Wiki
Get Gentoo!
Gentoo's Bugzilla – Attachment 24409 Details for
Bug 39302
games-strategy/scorched3d-36.2: format string crashes server and client
Home
|
New
–
[Ex]
|
Browse
|
Search
|
Privacy Policy
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
incomplete-bounds-checking.diff
scorched-bounds-checking.diff (text/plain), 7.83 KB, created by
solar (RETIRED)
on 2004-01-25 13:29:52 UTC
(
hide
)
Description:
incomplete-bounds-checking.diff
Filename:
MIME Type:
Creator:
solar (RETIRED)
Created:
2004-01-25 13:29:52 UTC
Size:
7.83 KB
patch
obsolete
>diff -Nurp scorched.orig/src/3dsparse/ModelID.cpp scorched/src/3dsparse/ModelID.cpp >--- scorched.orig/src/3dsparse/ModelID.cpp 2003-11-26 17:14:27.000000000 -0500 >+++ scorched/src/3dsparse/ModelID.cpp 2004-01-25 15:51:52.000000000 -0500 >@@ -27,7 +27,7 @@ > static const char *getDirectoryPath(const char *file) > { > static char buffer[256]; >- sprintf(buffer, PKGDIR "%s", file); >+ snprintf(buffer, sizeof(buffer), "%s%s", PKGDIR, file); > return buffer; > } > >@@ -80,11 +80,11 @@ bool ModelID::initFromNode(const char *d > > const char *skinNameContent = skinNode->getContent(); > static char skinName[1024]; >- sprintf(skinName, "%s/%s", directory, skinNameContent); >+ snprintf(skinName, sizeof(skinName), "%s/%s", directory, skinNameContent); > > const char *meshNameContent = meshNode->getContent(); > static char meshName[1024]; >- sprintf(meshName, "%s/%s", directory, meshNameContent); >+ snprintf(meshName, sizeof(meshName), "%s/%s", directory, meshNameContent); > > if (!::wxFileExists(getDirectoryPath(skinName))) > { >@@ -108,7 +108,7 @@ bool ModelID::initFromNode(const char *d > { > const char *meshNameContent = modelNode->getContent(); > static char meshName[1024]; >- sprintf(meshName, "%s/%s", directory, meshNameContent); >+ snprintf(meshName, sizeof(meshName),"%s/%s", directory, meshNameContent); > > if (!::wxFileExists(getDirectoryPath(meshName))) > { >diff -Nurp scorched.orig/src/GLEXT/GLConsole.cpp scorched/src/GLEXT/GLConsole.cpp >--- scorched.orig/src/GLEXT/GLConsole.cpp 2003-12-08 18:08:58.000000000 -0500 >+++ scorched/src/GLEXT/GLConsole.cpp 2004-01-25 04:12:55.000000000 -0500 >@@ -231,7 +231,7 @@ void GLConsole::addLine(bool parse, cons > va_list ap; > > va_start(ap, fmt); >- vsprintf(text, fmt, ap); >+ vsnprintf(text, sizeof(text), fmt, ap); > va_end(ap); > > DIALOG_ASSERT(strlen(text)<TEXT_SIZE); >diff -Nurp scorched.orig/src/GLEXT/GLFont2d.cpp scorched/src/GLEXT/GLFont2d.cpp >--- scorched.orig/src/GLEXT/GLFont2d.cpp 2003-07-10 12:29:17.000000000 -0400 >+++ scorched/src/GLEXT/GLFont2d.cpp 2004-01-25 04:14:17.000000000 -0500 >@@ -55,7 +55,7 @@ void GLFont2d::draw(Vector &color, float > va_list ap; > > va_start(ap, fmt); >- vsprintf(text, fmt, ap); >+ vnsprintf(text, sizeof(text), fmt, ap); > va_end(ap); > > drawString((GLsizei) strlen(text), color, size, x, y, z, text, false); >@@ -69,7 +69,7 @@ void GLFont2d::drawLen(unsigned len, Vec > va_list ap; > > va_start(ap, fmt); >- vsprintf(text, fmt, ap); >+ vsnprintf(text, sizeof(text), fmt, ap); > va_end(ap); > > GLsizei l = (GLsizei) (MIN(len, strlen(text))); >@@ -84,7 +84,7 @@ void GLFont2d::drawBilboard(Vector &colo > va_list ap; > > va_start(ap, fmt); >- vsprintf(text, fmt, ap); >+ vsnprintf(text, sizeof(text), fmt, ap); > va_end(ap); > > drawString((GLsizei) strlen(text), color, size, x, y, z, text, true); >diff -Nurp scorched.orig/src/GLEXT/GLFontBanner.cpp scorched/src/GLEXT/GLFontBanner.cpp >--- scorched.orig/src/GLEXT/GLFontBanner.cpp 2003-07-10 12:29:18.000000000 -0400 >+++ scorched/src/GLEXT/GLFontBanner.cpp 2004-01-25 04:15:13.000000000 -0500 >@@ -97,7 +97,7 @@ void GLFontBanner::addLine(Vector &color > va_list ap; > > va_start(ap, fmt); >- vsprintf(text, fmt, ap); >+ vsnprintf(text, sizeof(text), fmt, ap); > va_end(ap); > > if (textRemoved) >diff -Nurp scorched.orig/src/GLEXT/GLLenseFlare.cpp scorched/src/GLEXT/GLLenseFlare.cpp >--- scorched.orig/src/GLEXT/GLLenseFlare.cpp 2003-12-02 16:46:43.000000000 -0500 >+++ scorched/src/GLEXT/GLLenseFlare.cpp 2004-01-25 04:17:21.000000000 -0500 >@@ -103,7 +103,7 @@ void GLLenseFlare::init(ProgressCounter > if (counter) counter->setNewPercentage(float (i) / 16.0f * 100.0f); > > char buffer[100]; >- sprintf(buffer, PKGDIR "data/textures/lensflare/shine%d.bw", i); >+ snprintf(buffer, sizeof(buffer), "%sdata/textures/lensflare/shine%d.bw", PKGDIR, i); > > GLLuminance bitmap(buffer); > shines_[i].create(bitmap, GL_LUMINANCE); >@@ -114,7 +114,7 @@ void GLLenseFlare::init(ProgressCounter > if (counter) counter->setNewPercentage(float (i+10) / 16.0f * 100.0f); > > char buffer[100]; >- sprintf(buffer , PKGDIR "data/textures/lensflare/flare%d.bw", i); >+ snprintf(buffer , "%sdata/textures/lensflare/flare%d.bw", PKGDIR, i); > > GLLuminance bitmap(buffer); > flares_[i].create(bitmap, GL_LUMINANCE); >diff -Nurp scorched.orig/src/GLW/GLWListView.cpp scorched/src/GLW/GLWListView.cpp >--- scorched.orig/src/GLW/GLWListView.cpp 2003-11-16 18:19:56.000000000 -0500 >+++ scorched/src/GLW/GLWListView.cpp 2004-01-25 14:42:46.000000000 -0500 >@@ -101,7 +101,7 @@ void GLWListView::addLine(const char *fm > va_list ap; > > va_start(ap, fmt); >- vsprintf(text, fmt, ap); >+ vnsprintf(text, sizeof(text), fmt, ap); > va_end(ap); > > lines_.push_back(text); >diff -Nurp scorched.orig/src/actions/Explosion.cpp scorched/src/actions/Explosion.cpp >--- scorched.orig/src/actions/Explosion.cpp 2003-12-02 16:46:43.000000000 -0500 >+++ scorched/src/actions/Explosion.cpp 2004-01-25 14:43:53.000000000 -0500 >@@ -144,7 +144,7 @@ void Explosion::simulate(float frameTime > if (weapon_->getExplosionSound()) > { > static char soundBuffer[256]; >- sprintf(soundBuffer, PKGDIR "data/wav/%s", weapon_->getExplosionSound()); >+ snprintf(soundBuffer, sizeof(soundBuffer), "%sdata/wav/%s", PKGDIR, weapon_->getExplosionSound()); > SoundBuffer *expSound = > SoundStore::instance()->fetchOrCreateBuffer(soundBuffer); > expSound->play(); >diff -Nurp scorched.orig/src/actions/ShieldHit.cpp scorched/src/actions/ShieldHit.cpp >--- scorched.orig/src/actions/ShieldHit.cpp 2003-11-11 19:08:56.000000000 -0500 >+++ scorched/src/actions/ShieldHit.cpp 2004-01-25 14:44:32.000000000 -0500 >@@ -61,7 +61,7 @@ void ShieldHit::simulate(float frameTime > if (!context_->serverMode) > { > char buffer[256]; >- sprintf(buffer, PKGDIR "data/wav/%s", shield->getCollisionSound()); >+ snprintf(buffer, "%sdata/wav/%s", PKGDIR, shield->getCollisionSound()); > SoundBuffer *shieldSound = > SoundStore::instance()->fetchOrCreateBuffer(buffer); > shieldSound->play(); >diff -Nurp scorched.orig/src/actions/ShotProjectileNapalm.cpp scorched/src/actions/ShotProjectileNapalm.cpp >--- scorched.orig/src/actions/ShotProjectileNapalm.cpp 2003-11-11 19:08:56.000000000 -0500 >+++ scorched/src/actions/ShotProjectileNapalm.cpp 2004-01-25 14:45:34.000000000 -0500 >@@ -61,7 +61,7 @@ void ShotProjectileNapalm::collision(Vec > if (weapon_->getExplosionSound()) > { > static char soundBuffer[256]; >- sprintf(soundBuffer, PKGDIR "data/wav/%s", weapon_->getExplosionSound()); >+ snprintf(soundBuffer, sizeof(soundBuffer), "%sdata/wav/%s", PKGDIR, weapon_->getExplosionSound()); > SoundBuffer *expSound = > SoundStore::instance()->fetchOrCreateBuffer(soundBuffer); > expSound->play(); >diff -Nurp scorched.orig/src/actions/TankFired.cpp scorched/src/actions/TankFired.cpp >--- scorched.orig/src/actions/TankFired.cpp 2003-11-11 19:08:56.000000000 -0500 >+++ scorched/src/actions/TankFired.cpp 2004-01-25 15:47:41.000000000 -0500 >@@ -76,7 +76,7 @@ void TankFired::simulate(float frameTime > if (weapon_->getFiredSound()) > { > static char soundBuffer[256]; >- sprintf(soundBuffer, PKGDIR "data/wav/%s", weapon_->getFiredSound()); >+ snprintf(soundBuffer, sizeof(soundBuffer), "data/wav/%s", PKGDIR, weapon_->getFiredSound()); > > SoundBuffer *firedSound = > SoundStore::instance()->fetchOrCreateBuffer(soundBuffer); >diff -Nurp scorched.orig/src/client/MainCamera.cpp scorched/src/client/MainCamera.cpp >--- scorched.orig/src/client/MainCamera.cpp 2003-11-24 18:21:42.000000000 -0500 >+++ scorched/src/client/MainCamera.cpp 2004-01-25 14:47:28.000000000 -0500 >@@ -448,7 +448,7 @@ void MainCamera::SaveScreen::draw(const > static unsigned counter = 0; > time_t currentTime = time(0); > char fileName[256]; >- sprintf(fileName, PKGDIR "ScreenShot-%i-%i.bmp", currentTime, counter++); >+ snprintf(fileName, sizeof(fileName), "%sScreenShot-%i-%i.bmp", PKGDIR, currentTime, counter++); > > GLBitmap screenMap; > screenMap.grabScreen();
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 39302
: 24409