(svn r14397) -Fix: possible buffer overrun, wrong parameter type passed to printf and && where || is meant. Found by MSVC's code analysis (Darkvater)

This commit is contained in:
rubidium 2008-09-24 23:25:24 +00:00
parent b907ffec97
commit 86f1a98ac8
3 changed files with 6 additions and 6 deletions

View File

@ -2747,7 +2747,7 @@ static PBSTileInfo ExtendTrainReservation(const Vehicle *v, TrackBits *new_track
if (!TryReserveRailTrack(tile, TrackdirToTrack(cur_td))) break; if (!TryReserveRailTrack(tile, TrackdirToTrack(cur_td))) break;
} }
if (ft.m_err == CFollowTrackRail::EC_OWNER && ft.m_err == CFollowTrackRail::EC_NO_WAY) { if (ft.m_err == CFollowTrackRail::EC_OWNER || ft.m_err == CFollowTrackRail::EC_NO_WAY) {
/* End of line, path valid and okay. */ /* End of line, path valid and okay. */
return PBSTileInfo(ft.m_old_tile, ft.m_old_td, true); return PBSTileInfo(ft.m_old_tile, ft.m_old_td, true);
} }

View File

@ -289,7 +289,7 @@ static bool MakeWindow(bool full_screen)
} else { } else {
TCHAR Windowtitle[50]; TCHAR Windowtitle[50];
_sntprintf(Windowtitle, sizeof(Windowtitle), _T("OpenTTD %s"), MB_TO_WIDE(_openttd_revision)); _sntprintf(Windowtitle, lengthof(Windowtitle), _T("OpenTTD %s"), MB_TO_WIDE(_openttd_revision));
_wnd.main_wnd = CreateWindow(_T("OTTD"), Windowtitle, style, x, y, w, h, 0, 0, GetModuleHandle(NULL), 0); _wnd.main_wnd = CreateWindow(_T("OTTD"), Windowtitle, style, x, y, w, h, 0, 0, GetModuleHandle(NULL), 0);
if (_wnd.main_wnd == NULL) usererror("CreateWindow failed"); if (_wnd.main_wnd == NULL) usererror("CreateWindow failed");

View File

@ -530,7 +530,7 @@ static LONG WINAPI ExceptionHandler(EXCEPTION_POINTERS *ep)
ep->ContextRecord->EFlags ep->ContextRecord->EFlags
); );
#else #else
output += sprintf(output, "Exception %.8X at %.8X\r\n" output += sprintf(output, "Exception %.8X at %.8p\r\n"
"Registers:\r\n" "Registers:\r\n"
" EAX: %.8X EBX: %.8X ECX: %.8X EDX: %.8X\r\n" " EAX: %.8X EBX: %.8X ECX: %.8X EDX: %.8X\r\n"
" ESI: %.8X EDI: %.8X EBP: %.8X ESP: %.8X\r\n" " ESI: %.8X EDI: %.8X EBP: %.8X ESP: %.8X\r\n"
@ -596,9 +596,9 @@ static LONG WINAPI ExceptionHandler(EXCEPTION_POINTERS *ep)
output = PrintModuleList(output); output = PrintModuleList(output);
{ {
OSVERSIONINFO os; _OSVERSIONINFOA os;
os.dwOSVersionInfoSize = sizeof(os); os.dwOSVersionInfoSize = sizeof(os);
GetVersionEx(&os); GetVersionExA(&os);
output += sprintf(output, "\r\nSystem information:\r\n" output += sprintf(output, "\r\nSystem information:\r\n"
" Windows version %d.%d %d %s\r\n\r\n", " Windows version %d.%d %d %s\r\n\r\n",
os.dwMajorVersion, os.dwMinorVersion, os.dwBuildNumber, os.szCSDVersion); os.dwMajorVersion, os.dwMinorVersion, os.dwBuildNumber, os.szCSDVersion);
@ -804,7 +804,7 @@ void FiosGetDrives()
TCHAR drives[256]; TCHAR drives[256];
const TCHAR *s; const TCHAR *s;
GetLogicalDriveStrings(sizeof(drives), drives); GetLogicalDriveStrings(lengthof(drives), drives);
for (s = drives; *s != '\0';) { for (s = drives; *s != '\0';) {
FiosItem *fios = _fios_items.Append(); FiosItem *fios = _fios_items.Append();
fios->type = FIOS_TYPE_DRIVE; fios->type = FIOS_TYPE_DRIVE;