From 58e2ab3440324917a75ec7ca62107da44a01cc35 Mon Sep 17 00:00:00 2001 From: Taylor Richards Date: Sun, 20 Sep 2015 20:17:12 -0400 Subject: [PATCH] silence various compiler warnings (clang:rel) --- include/floating.h | 2 +- src/ac/convert.cpp | 160 +++++++++++++++++----------- src/bmpman/bmpman.cpp | 4 +- src/cfile/cfilesystem.cpp | 14 ++- src/cfilearchiver/cfilearchiver.cpp | 22 +++- src/fonttool/fontcreate.cpp | 37 ++++--- src/freespace2/freespace.cpp | 30 +++--- src/globalincs/version.cpp | 4 +- src/math/floating.cpp | 3 +- src/mission/missionlog.cpp | 5 +- src/network/gtrack.cpp | 20 ++-- src/network/multilag.cpp | 3 +- src/network/ptrack.cpp | 19 ++-- src/network/valid.cpp | 20 ++-- src/object/collideshipship.cpp | 5 +- src/object/collideweaponweapon.cpp | 3 + src/object/object.cpp | 4 + src/platform/platform.cpp | 2 + src/scramble/scramble.cpp | 19 +++- src/ship/ship.cpp | 2 + 20 files changed, 248 insertions(+), 130 deletions(-) diff --git a/include/floating.h b/include/floating.h index 320e493..f7e6b9c 100644 --- a/include/floating.h +++ b/include/floating.h @@ -105,6 +105,7 @@ float frand_range(float min, float max); // (int)floor(x) use fl_round_2048(x-0.5f) // for values in the range -2048 to 2048 +/* extern const float *p_fl_magic; inline int fl_round_2048( float x ) @@ -114,7 +115,6 @@ inline int fl_round_2048( float x ) return *((int *)&tmp_quad); } -/* inline float fl_sqrt( float x) { float retval; diff --git a/src/ac/convert.cpp b/src/ac/convert.cpp index 487e4b2..b172ecb 100644 --- a/src/ac/convert.cpp +++ b/src/ac/convert.cpp @@ -256,6 +256,8 @@ void AVI_stream_init() AVI_stream.frame_index = NULL; } +#define FREAD(a, b, c, d) do { if ( fread(a, b, c, d) != b ) { read_error = true; break; } } while (0); + // AVI_stream_open() will open the AVI file and prepare it for reading, but will not // store any of the frame data. // @@ -297,7 +299,12 @@ int AVI_stream_open(char* filename) fseek(pfile, 0, SEEK_SET); // check for valid file type - fread(&id, 1, 4, pfile); + if ( fread(&id, 1, 4, pfile) != 4 ) { + printf("AVI => File read ERROR '%s'\n", filename); + fclose(pfile); + return -1; + } + id = INTEL_INT(id); // 'RIFF' @@ -308,10 +315,19 @@ int AVI_stream_open(char* filename) } // skip RIFF size - fread(&id, 1, 4, pfile); + if ( fread(&id, 1, 4, pfile) != 4 ) { + printf("AVI => File read ERROR '%s'\n", filename); + fclose(pfile); + return -1; + } // check for valid RIFF type - fread(&id, 1, 4, pfile); + if ( fread(&id, 1, 4, pfile) != 4 ) { + printf("AVI => File read ERROR '%s'\n", filename); + fclose(pfile); + return -1; + } + id = INTEL_INT(id); // 'AVI ' @@ -324,10 +340,13 @@ int AVI_stream_open(char* filename) // used for main 'LIST' chunks long offset_tmp = 0; + // in case of error + bool read_error = false; + // parse WAVE tags while ( ftell(pfile) < file_size ) { - fread(&tag, 1, 4, pfile); - fread(&size, 1, 4, pfile); + FREAD(&tag, 1, 4, pfile); + FREAD(&size, 1, 4, pfile); tag = INTEL_INT(tag); size = INTEL_INT(size); @@ -338,25 +357,25 @@ int AVI_stream_open(char* filename) // 'LIST' case 0x5453494c: { // sub tag - fread(&s_tag, 1, 4, pfile); + FREAD(&s_tag, 1, 4, pfile); s_tag = INTEL_INT(s_tag); switch (s_tag) { // 'hdrl' case 0x6c726468: { - fread(&avi_header.fcc, 1, sizeof(int), pfile); - fread(&avi_header.cb, 1, sizeof(int), pfile); - fread(&avi_header.dwMicroSecPerFrame, 1, sizeof(int), pfile); - fread(&avi_header.dwMaxBytesPerSec, 1, sizeof(int), pfile); - fread(&avi_header.dwPaddingGranularity, 1, sizeof(int), pfile); - fread(&avi_header.dwFlags, 1, sizeof(int), pfile); - fread(&avi_header.dwTotalFrames, 1, sizeof(int), pfile); - fread(&avi_header.dwInitialFrames, 1, sizeof(int), pfile); - fread(&avi_header.dwStreams, 1, sizeof(int), pfile); - fread(&avi_header.dwSuggestedBufferSize, 1, sizeof(int), pfile); - fread(&avi_header.dwWidth, 1, sizeof(int), pfile); - fread(&avi_header.dwHeight, 1, sizeof(int), pfile); - fread(&avi_header.dwReserved, 1, sizeof(avi_header.dwReserved), pfile); + FREAD(&avi_header.fcc, 1, sizeof(int), pfile); + FREAD(&avi_header.cb, 1, sizeof(int), pfile); + FREAD(&avi_header.dwMicroSecPerFrame, 1, sizeof(int), pfile); + FREAD(&avi_header.dwMaxBytesPerSec, 1, sizeof(int), pfile); + FREAD(&avi_header.dwPaddingGranularity, 1, sizeof(int), pfile); + FREAD(&avi_header.dwFlags, 1, sizeof(int), pfile); + FREAD(&avi_header.dwTotalFrames, 1, sizeof(int), pfile); + FREAD(&avi_header.dwInitialFrames, 1, sizeof(int), pfile); + FREAD(&avi_header.dwStreams, 1, sizeof(int), pfile); + FREAD(&avi_header.dwSuggestedBufferSize, 1, sizeof(int), pfile); + FREAD(&avi_header.dwWidth, 1, sizeof(int), pfile); + FREAD(&avi_header.dwHeight, 1, sizeof(int), pfile); + FREAD(&avi_header.dwReserved, 1, sizeof(avi_header.dwReserved), pfile); avi_header.fcc = INTEL_INT(avi_header.fcc); avi_header.cb = INTEL_INT(avi_header.cb); @@ -397,25 +416,25 @@ int AVI_stream_open(char* filename) // 'strl' - subchunk of 'hdrl' case 0x6c727473: { - fread(&stream_header.fcc, 1, sizeof(int), pfile); - fread(&stream_header.cb, 1, sizeof(int), pfile); - fread(&stream_header.fccType, 1, sizeof(int), pfile); - fread(&stream_header.fccHandler, 1, sizeof(int), pfile); - fread(&stream_header.dwFlags, 1, sizeof(int), pfile); - fread(&stream_header.wPriority, 1, sizeof(short), pfile); - fread(&stream_header.wLanguage, 1, sizeof(short), pfile); - fread(&stream_header.dwInitialFrames, 1, sizeof(int), pfile); - fread(&stream_header.dwScale, 1, sizeof(int), pfile); - fread(&stream_header.dwRate, 1, sizeof(int), pfile); - fread(&stream_header.dwStart, 1, sizeof(int), pfile); - fread(&stream_header.dwLength, 1, sizeof(int), pfile); - fread(&stream_header.dwSuggestedBufferSize, 1, sizeof(int), pfile); - fread(&stream_header.dwQuality, 1, sizeof(int), pfile); - fread(&stream_header.dwSampleSize, 1, sizeof(int), pfile); - fread(&stream_header.rcFrame.left, 1, sizeof(short), pfile); - fread(&stream_header.rcFrame.top, 1, sizeof(short), pfile); - fread(&stream_header.rcFrame.right, 1, sizeof(short), pfile); - fread(&stream_header.rcFrame.bottom, 1, sizeof(short), pfile); + FREAD(&stream_header.fcc, 1, sizeof(int), pfile); + FREAD(&stream_header.cb, 1, sizeof(int), pfile); + FREAD(&stream_header.fccType, 1, sizeof(int), pfile); + FREAD(&stream_header.fccHandler, 1, sizeof(int), pfile); + FREAD(&stream_header.dwFlags, 1, sizeof(int), pfile); + FREAD(&stream_header.wPriority, 1, sizeof(short), pfile); + FREAD(&stream_header.wLanguage, 1, sizeof(short), pfile); + FREAD(&stream_header.dwInitialFrames, 1, sizeof(int), pfile); + FREAD(&stream_header.dwScale, 1, sizeof(int), pfile); + FREAD(&stream_header.dwRate, 1, sizeof(int), pfile); + FREAD(&stream_header.dwStart, 1, sizeof(int), pfile); + FREAD(&stream_header.dwLength, 1, sizeof(int), pfile); + FREAD(&stream_header.dwSuggestedBufferSize, 1, sizeof(int), pfile); + FREAD(&stream_header.dwQuality, 1, sizeof(int), pfile); + FREAD(&stream_header.dwSampleSize, 1, sizeof(int), pfile); + FREAD(&stream_header.rcFrame.left, 1, sizeof(short), pfile); + FREAD(&stream_header.rcFrame.top, 1, sizeof(short), pfile); + FREAD(&stream_header.rcFrame.right, 1, sizeof(short), pfile); + FREAD(&stream_header.rcFrame.bottom, 1, sizeof(short), pfile); stream_header.fcc = INTEL_INT(stream_header.fcc); stream_header.cb = INTEL_INT(stream_header.cb); @@ -465,24 +484,24 @@ int AVI_stream_open(char* filename) // next stream sub-chunk ------------------------------- // check for 'strf' - fread(&tmp, 1, 4, pfile); + FREAD(&tmp, 1, 4, pfile); tmp = INTEL_INT(tmp); SDL_assert(tmp == 0x66727473); // size of 'strf' - fread(&tmp, 1, 4, pfile); - - fread(&bitmap_header.bmiHeader.biSize, 1, sizeof(int), pfile); - fread(&bitmap_header.bmiHeader.biWidth, 1, sizeof(int), pfile); - fread(&bitmap_header.bmiHeader.biHeight, 1, sizeof(int), pfile); - fread(&bitmap_header.bmiHeader.biPlanes, 1, sizeof(short), pfile); - fread(&bitmap_header.bmiHeader.biBitCount, 1, sizeof(short), pfile); - fread(&bitmap_header.bmiHeader.biCompression, 1, sizeof(int), pfile); - fread(&bitmap_header.bmiHeader.biSizeImage, 1, sizeof(int), pfile); - fread(&bitmap_header.bmiHeader.biXPelsPerMeter, 1, sizeof(int), pfile); - fread(&bitmap_header.bmiHeader.biYPelsPerMeter, 1, sizeof(int), pfile); - fread(&bitmap_header.bmiHeader.biClrUsed, 1, sizeof(int), pfile); - fread(&bitmap_header.bmiHeader.biClrImportant, 1, sizeof(int), pfile); + FREAD(&tmp, 1, 4, pfile); + + FREAD(&bitmap_header.bmiHeader.biSize, 1, sizeof(int), pfile); + FREAD(&bitmap_header.bmiHeader.biWidth, 1, sizeof(int), pfile); + FREAD(&bitmap_header.bmiHeader.biHeight, 1, sizeof(int), pfile); + FREAD(&bitmap_header.bmiHeader.biPlanes, 1, sizeof(short), pfile); + FREAD(&bitmap_header.bmiHeader.biBitCount, 1, sizeof(short), pfile); + FREAD(&bitmap_header.bmiHeader.biCompression, 1, sizeof(int), pfile); + FREAD(&bitmap_header.bmiHeader.biSizeImage, 1, sizeof(int), pfile); + FREAD(&bitmap_header.bmiHeader.biXPelsPerMeter, 1, sizeof(int), pfile); + FREAD(&bitmap_header.bmiHeader.biYPelsPerMeter, 1, sizeof(int), pfile); + FREAD(&bitmap_header.bmiHeader.biClrUsed, 1, sizeof(int), pfile); + FREAD(&bitmap_header.bmiHeader.biClrImportant, 1, sizeof(int), pfile); bitmap_header.bmiHeader.biSize = INTEL_INT(bitmap_header.bmiHeader.biSize); bitmap_header.bmiHeader.biWidth = INTEL_INT(bitmap_header.bmiHeader.biWidth); @@ -505,10 +524,10 @@ int AVI_stream_open(char* filename) // palette for (int i = 0; i < 256; i++) { - fread(&bitmap_header.bmiColors[i].b, 1, 1, pfile); - fread(&bitmap_header.bmiColors[i].g, 1, 1, pfile); - fread(&bitmap_header.bmiColors[i].r, 1, 1, pfile); - fread(&bitmap_header.bmiColors[i].p, 1, 1, pfile); + FREAD(&bitmap_header.bmiColors[i].b, 1, 1, pfile); + FREAD(&bitmap_header.bmiColors[i].g, 1, 1, pfile); + FREAD(&bitmap_header.bmiColors[i].r, 1, 1, pfile); + FREAD(&bitmap_header.bmiColors[i].p, 1, 1, pfile); } // reset next_chunk back to main 'LIST' @@ -547,10 +566,10 @@ int AVI_stream_open(char* filename) unsigned int c_id, c_flags, c_offset, c_size, i = 0; while ( ftell(pfile) < next_chunk ) { - fread(&c_id, 1, sizeof(int), pfile); - fread(&c_flags, 1, sizeof(int), pfile); - fread(&c_offset, 1, sizeof(int), pfile); - fread(&c_size, 1, sizeof(int), pfile); + FREAD(&c_id, 1, sizeof(int), pfile); + FREAD(&c_flags, 1, sizeof(int), pfile); + FREAD(&c_offset, 1, sizeof(int), pfile); + FREAD(&c_size, 1, sizeof(int), pfile); c_id = INTEL_INT(c_id); c_flags = INTEL_INT(c_flags); @@ -581,9 +600,20 @@ int AVI_stream_open(char* filename) break; } + if (read_error) { + break; + } + fseek(pfile, next_chunk, SEEK_SET); } + if (read_error) { + printf("AVI => File read ERROR '%s'\n", filename); + fclose(pfile); + + return -1; + } + // make sure we have a frame index if (AVI_stream.frame_index == NULL) { printf("AVI => No valid frame index found '%s'\n", filename); @@ -690,9 +720,15 @@ int AVI_stream_get_frame(ubyte* buffer, int frame_number) memset(compressed_frame, 0, AVI_stream.min_compressed_buffer_size); fseek(AVI_stream.pfile, AVI_stream.frame_index[frame_number-1].offset, SEEK_SET); - fread(compressed_frame, 1, AVI_stream.frame_index[frame_number-1].size, AVI_stream.pfile); - AVI_decompress_RLE8(compressed_frame, buffer, AVI_stream.w, AVI_stream.h); + size_t rsize = AVI_stream.frame_index[frame_number-1].size; + + if ( fread(compressed_frame, 1, rsize, AVI_stream.pfile) == rsize ) { + AVI_decompress_RLE8(compressed_frame, buffer, AVI_stream.w, AVI_stream.h); + } else { + printf("AVI : ERROR => short read in get_frame()!\n"); + } + free( compressed_frame ); diff --git a/src/bmpman/bmpman.cpp b/src/bmpman/bmpman.cpp index 257f47f..8ba1f4e 100644 --- a/src/bmpman/bmpman.cpp +++ b/src/bmpman/bmpman.cpp @@ -1953,13 +1953,11 @@ void bm_release(int handle) int bm_unload( int handle ) { bitmap_entry *be; - bitmap *bmp; int n = handle % MAX_BITMAPS; SDL_assert(n >= 0 && n < MAX_BITMAPS); be = &bm_bitmaps[n]; - bmp = &be->bm; if ( be->type == BM_TYPE_NONE ) { return 0; // Already been released @@ -1973,7 +1971,7 @@ int bm_unload( int handle ) return 0; } - nprintf(("BmpMan", "unloading %s. %dx%dx%d\n", be->filename, bmp->w, bmp->h, bmp->bpp)); + nprintf(("BmpMan", "unloading %s. %dx%dx%d\n", be->filename, be->bm.w, be->bm.h, be->bm.bpp)); bm_free_data(n); // clears flags, bbp, data, etc return 1; diff --git a/src/cfile/cfilesystem.cpp b/src/cfile/cfilesystem.cpp index 374bc13..898ca01 100644 --- a/src/cfile/cfilesystem.cpp +++ b/src/cfile/cfilesystem.cpp @@ -652,6 +652,7 @@ typedef struct VP_FILE { void cf_search_root_pack(int root_index) { + size_t rc = 0; int i; cf_root *root = cf_get_root(root_index); @@ -669,7 +670,12 @@ void cf_search_root_pack(int root_index) VP_FILE_HEADER VP_header; SDL_assert( sizeof(VP_header) == 16 ); - fread(&VP_header, 1, sizeof(VP_header), fp); + rc = fread(&VP_header, 1, sizeof(VP_header), fp); + + if (rc != sizeof(VP_header)) { + fclose(fp); + return; + } VP_header.version = INTEL_INT( VP_header.version); VP_header.index_offset = INTEL_INT( VP_header.index_offset); @@ -686,7 +692,11 @@ void cf_search_root_pack(int root_index) for (i=0; ikern_data) free(fnt->kern_data); \ + if (fnt->char_data) free(fnt->char_data); \ + if (fnt->pixel_data) free(fnt->pixel_data); \ + fclose(fp); \ + myexit(1); \ + } \ +} while (0); + void fonttool_read( char *filename, font *fnt ) { FILE *fp; @@ -440,16 +451,16 @@ void fonttool_read( char *filename, font *fnt ) myexit(1); } - fread( &fnt->id, 4, 1, fp ); - fread( &fnt->version, sizeof(int), 1, fp ); - fread( &fnt->num_chars, sizeof(int), 1, fp ); - fread( &fnt->first_ascii, sizeof(int), 1, fp ); - fread( &fnt->w, sizeof(int), 1, fp ); - fread( &fnt->h, sizeof(int), 1, fp ); - fread( &fnt->num_kern_pairs, sizeof(int), 1, fp ); - fread( &fnt->kern_data_size, sizeof(int), 1, fp ); - fread( &fnt->char_data_size, sizeof(int), 1, fp ); - fread( &fnt->pixel_data_size, sizeof(int), 1, fp ); + FREAD( &fnt->id, 4, 1, fp ); + FREAD( &fnt->version, sizeof(int), 1, fp ); + FREAD( &fnt->num_chars, sizeof(int), 1, fp ); + FREAD( &fnt->first_ascii, sizeof(int), 1, fp ); + FREAD( &fnt->w, sizeof(int), 1, fp ); + FREAD( &fnt->h, sizeof(int), 1, fp ); + FREAD( &fnt->num_kern_pairs, sizeof(int), 1, fp ); + FREAD( &fnt->kern_data_size, sizeof(int), 1, fp ); + FREAD( &fnt->char_data_size, sizeof(int), 1, fp ); + FREAD( &fnt->pixel_data_size, sizeof(int), 1, fp ); fnt->version = INTEL_INT( fnt->version ); fnt->num_chars = INTEL_INT( fnt->num_chars ); @@ -467,7 +478,7 @@ void fonttool_read( char *filename, font *fnt ) mprintf(( "Out of memory reading %d bytes of font data from %s\n", tmp_name )); myexit(1); } - fread( fnt->kern_data, fnt->kern_data_size, 1, fp ); + FREAD( fnt->kern_data, fnt->kern_data_size, 1, fp ); } else { fnt->kern_data = NULL; } @@ -477,7 +488,7 @@ void fonttool_read( char *filename, font *fnt ) mprintf(( "Out of memory reading %d bytes of font data from %s\n", tmp_name )); myexit(1); } - fread( fnt->char_data, fnt->char_data_size, 1, fp ); + FREAD( fnt->char_data, fnt->char_data_size, 1, fp ); } else { fnt->char_data = NULL; } @@ -487,7 +498,7 @@ void fonttool_read( char *filename, font *fnt ) mprintf(( "Out of memory reading %d bytes of font data from %s\n", tmp_name )); myexit(1); } - fread( fnt->pixel_data, fnt->pixel_data_size, 1, fp ); + FREAD( fnt->pixel_data, fnt->pixel_data_size, 1, fp ); } else { fnt->pixel_data = NULL; } diff --git a/src/freespace2/freespace.cpp b/src/freespace2/freespace.cpp index 1a08d10..77211fd 100644 --- a/src/freespace2/freespace.cpp +++ b/src/freespace2/freespace.cpp @@ -1944,8 +1944,13 @@ void game_loading_callback_close() // Make sure bar shows all the way over. game_loading_callback(COUNT_ESTIMATE); - + +#ifndef NDEBUG int real_count = game_busy_callback( NULL ); +#else + game_busy_callback( NULL ); +#endif + Mouse_hidden = 0; Game_loading_callback_inited = 0; @@ -1954,9 +1959,6 @@ void game_loading_callback_close() mprintf(( "=================== ENDING LOAD ================\n" )); mprintf(( "Real count = %d, Estimated count = %d\n", real_count, COUNT_ESTIMATE )); mprintf(( "================================================\n" )); -#else - // to remove warnings in release build - real_count = 0; #endif free_anim_instance(Game_loading_ani_instance); @@ -2291,15 +2293,21 @@ void game_init() // Initialize the timer before the os timer_init(); +#ifndef NDEBUG int s1, e1; // int s2, e2; //Initialize the libraries s1 = timer_get_milliseconds(); +#endif + if ( cfile_init() ) { // initialize before calling any cfopen stuff!!! exit(1); - } + } + +#ifndef NDEBUG e1 = timer_get_milliseconds(); +#endif // time a bunch of cfopens /* @@ -4407,7 +4415,9 @@ void game_set_frametime(int state) // Frametime = F1_0 / 30; +#ifndef NDEBUG fix debug_frametime = Frametime; // Just used to display frametime. +#endif // If player hasn't entered mission yet, make frame take 1/4 second. if ((Pre_player_entry) && (state == GS_STATE_GAME_PLAY)) @@ -4460,9 +4470,6 @@ void game_set_frametime(int state) if (Frametime > MAX_FRAMETIME) { #ifndef NDEBUG mprintf(("Frame %2i too long!!: frametime = %.3f (%.3f)\n", Framecount, f2fl(Frametime), f2fl(debug_frametime))); -#else - // to remove warnings in release build - debug_frametime = fl2f(flFrametime); #endif Frametime = MAX_FRAMETIME; } @@ -6700,13 +6707,10 @@ int game_main(const char *szCmdLine) outwnd_init(1); #endif - int cpu_cores = SDL_GetCPUCount(); - int le = (SDL_BYTEORDER == SDL_LIL_ENDIAN); - mprintf(("Platform: %s\n", SDL_GetPlatform())); - mprintf(("CPU: %d %s\n", cpu_cores, (cpu_cores == 1) ? "core" : "cores")); + mprintf(("CPU: %d %s\n", SDL_GetCPUCount(), (SDL_GetCPUCount() == 1) ? "core" : "cores")); mprintf(("Memory: %dMB\n", Freespace_total_ram)); - mprintf(("Build: %d-bit, %s-endian\n", sizeof(void*) * 8, le ? "little" : "big")); + mprintf(("Build: %d-bit, %s-endian\n", sizeof(void*) * 8, (SDL_BYTEORDER == SDL_LIL_ENDIAN) ? "little" : "big")); parse_cmdline(szCmdLine); diff --git a/src/globalincs/version.cpp b/src/globalincs/version.cpp index dbbb91b..b2c3bb8 100644 --- a/src/globalincs/version.cpp +++ b/src/globalincs/version.cpp @@ -82,7 +82,9 @@ int version_compare(const char *filename, int *u_major, int *u_minor, int *u_bui SDL_strlcpy(buffer, "", SDL_arraysize(buffer)); while ( !feof(f) ) { // Read the line into a temporary buffer - fgets(buffer, MAX_LINE_LENGTH, f); + if ( fgets(buffer, MAX_LINE_LENGTH, f) == NULL ) { + break; + } // take the \n off the end of it if (strlen(buffer)>0 && buffer[strlen(buffer) - 1] == '\n') diff --git a/src/math/floating.cpp b/src/math/floating.cpp index 9c8c380..a310030 100644 --- a/src/math/floating.cpp +++ b/src/math/floating.cpp @@ -76,6 +76,7 @@ #include "floating.h" #include "timer.h" +/* #define LOOKUP_BITS 6 #define EXP_POS 23 #define EXP_BIAS 127 @@ -98,7 +99,7 @@ union _flint { float f; } fi, fo; -/* + static unsigned char iSqrt[TABLE_SIZE]; static int iSqrt_inited = 0; diff --git a/src/mission/missionlog.cpp b/src/mission/missionlog.cpp index 9d501af..7e562c0 100644 --- a/src/mission/missionlog.cpp +++ b/src/mission/missionlog.cpp @@ -385,7 +385,6 @@ void mission_log_flag_team( log_entry *entry, int which_entry, int team ) // that this event is for. Don't add entries with this function for multiplayer void mission_log_add_entry(int type, const char *pname, const char *sname, int info_index) { - int last_entry_save; log_entry *entry; // multiplayer clients don't use this function to add log entries -- they will get @@ -394,7 +393,9 @@ void mission_log_add_entry(int type, const char *pname, const char *sname, int i return; } - last_entry_save = last_entry; +#ifndef NDEBUG + int last_entry_save = last_entry; +#endif // mark any entries as obsolete. Part of the pruning is done based on the type (and name) passed // for a new entry diff --git a/src/network/gtrack.cpp b/src/network/gtrack.cpp index 706e89a..3898d70 100644 --- a/src/network/gtrack.cpp +++ b/src/network/gtrack.cpp @@ -404,7 +404,7 @@ void IdleGameTracker() if(SELECT(Unreliable_socket+1,&read_fds,NULL,NULL,&timeout, PSNET_TYPE_GAME_TRACKER)) { - unsigned int bytesin; + int bytesin; int addrsize; struct sockaddr_in fromaddr; @@ -412,19 +412,21 @@ void IdleGameTracker() addrsize = sizeof(struct sockaddr_in); bytesin = RECVFROM(Unreliable_socket, (char *)&packet_data, sizeof(game_packet_header), 0, (struct sockaddr *)&fromaddr, &addrsize, PSNET_TYPE_GAME_TRACKER); - DeserializeGamePacket(packet_data, bytesin, &inpacket); - if((int)bytesin==-1) - { + + if (bytesin > 0) { + DeserializeGamePacket(packet_data, bytesin, &inpacket); + + // subtract one from the header + inpacket.len--; +#ifndef NDEBUG + } else { int wserr=WSAGetLastError(); mprintf(("RECVFROM() failure. WSAGetLastError() returned %d\n",wserr)); - +#endif } - // subtract one from the header - inpacket.len--; - //Check to make sure the packets ok - if(bytesin==inpacket.len) + if ( (bytesin > 0) && (bytesin == (int)inpacket.len) ) { switch(inpacket.type) { diff --git a/src/network/multilag.cpp b/src/network/multilag.cpp index dc07194..fb2f97f 100644 --- a/src/network/multilag.cpp +++ b/src/network/multilag.cpp @@ -271,7 +271,7 @@ int multi_lag_select(int nfds, fd_set *readfds, fd_set *writefds, fd_set *except socklen_t t_from_len; #endif struct sockaddr_in ip_addr; - int ret_val; + int ret_val = SOCKET_ERROR; lag_buf *moveup, *item; SDL_assert(readfds != NULL); @@ -289,6 +289,7 @@ int multi_lag_select(int nfds, fd_set *readfds, fd_set *writefds, fd_set *except ret_val = recvfrom(nfds, t_buf, 1024, 0, (struct sockaddr*)&ip_addr, &t_from_len); } else { Int3(); + return SOCKET_ERROR; } // wacky socket error diff --git a/src/network/ptrack.cpp b/src/network/ptrack.cpp index 3ca948b..b8cadce 100644 --- a/src/network/ptrack.cpp +++ b/src/network/ptrack.cpp @@ -704,18 +704,21 @@ void PollPTrackNet() addrsize = sizeof(struct sockaddr_in); bytesin = RECVFROM(Unreliable_socket, (char *)&packet_data, sizeof(udp_packet_header), 0, (struct sockaddr *)&fromaddr, &addrsize, PSNET_TYPE_USER_TRACKER); - DeserializePilotPacket(packet_data, bytesin, &inpacket); - if(bytesin==-1){ + + if (bytesin > 0) { + DeserializePilotPacket(packet_data, bytesin, &inpacket); + + // decrease packet size by 1 + inpacket.len--; +#ifndef NDEBUG + } else { int wserr=WSAGetLastError(); - printf("recvfrom() failure. WSAGetLastError() returned %d\n",wserr); - + mprintf(("recvfrom() failure. WSAGetLastError() returned %d\n",wserr)); +#endif } - // decrease packet size by 1 - inpacket.len--; - //Check to make sure the packets ok - if(bytesin==inpacket.len){ + if ( (bytesin > 0) && (bytesin == inpacket.len) ) { switch(inpacket.type){ case UNT_PILOT_DATA_RESPONSE: if(inpacket.code == CMD_GAME_FREESPACE2){ diff --git a/src/network/valid.cpp b/src/network/valid.cpp index 22e1da2..8a75e6f 100644 --- a/src/network/valid.cpp +++ b/src/network/valid.cpp @@ -369,20 +369,24 @@ void ValidIdle() addrsize = sizeof(struct sockaddr_in); bytesin = RECVFROM(Unreliable_socket, (char *)&packet_data, sizeof(udp_packet_header), 0, (struct sockaddr *)&fromaddr, &addrsize, PSNET_TYPE_VALIDATION); - DeserializeValidatePacket(packet_data, bytesin, &inpacket); - if(bytesin==-1){ + + if (bytesin > 0) { + DeserializeValidatePacket(packet_data, bytesin, &inpacket); + + // decrease packet size by 1 + inpacket.len--; +#ifndef NDEBUG + } else { int wserr=WSAGetLastError(); - printf("recvfrom() failure. WSAGetLastError() returned %d\n",wserr); - + mprintf(("recvfrom() failure. WSAGetLastError() returned %d\n",wserr)); +#endif } + FD_ZERO(&read_fds); FD_SET(Unreliable_socket, &read_fds); - - // decrease packet size by 1 - inpacket.len--; //Check to make sure the packets ok - if(bytesin==inpacket.len){ + if ( (bytesin > 0) && (bytesin == inpacket.len) ) { switch(inpacket.type) { case UNT_LOGIN_NO_AUTH: diff --git a/src/object/collideshipship.cpp b/src/object/collideshipship.cpp index ef7981c..f205aef 100644 --- a/src/object/collideshipship.cpp +++ b/src/object/collideshipship.cpp @@ -620,7 +620,6 @@ int ship_ship_check_collision(collision_info_struct *ship_ship_hit_info, vector { object *heavy_obj = ship_ship_hit_info->heavy; object *light_obj = ship_ship_hit_info->light; - int player_involved; // flag to indicate that A or B is the Player_obj int num; //, player_check=0; SDL_assert( heavy_obj->type == OBJ_SHIP ); @@ -631,6 +630,9 @@ int ship_ship_check_collision(collision_info_struct *ship_ship_hit_info, vector SDL_assert( Ships[num].objnum == OBJ_INDEX(heavy_obj)); +#ifndef NDEBUG + int player_involved; // flag to indicate that A or B is the Player_obj + // AL 12-4-97: we use the player_involved flag to ensure collisions are always // done with the player, regardless of team. if ( heavy_obj == Player_obj || light_obj == Player_obj ) { @@ -638,6 +640,7 @@ int ship_ship_check_collision(collision_info_struct *ship_ship_hit_info, vector } else { player_involved = 0; } +#endif // Make ships that are warping in not get collision detection done // if ( Ships[num].flags & SF_ARRIVING ) return 0; diff --git a/src/object/collideweaponweapon.cpp b/src/object/collideweaponweapon.cpp index 3575fc0..b0ed43f 100644 --- a/src/object/collideweaponweapon.cpp +++ b/src/object/collideweaponweapon.cpp @@ -157,6 +157,7 @@ int collide_weapon_weapon( obj_pair * pair ) } } +#ifndef NDEBUG float dist = 0.0f; if (Weapons[A->instance].lifeleft == 0.01f) { dist = vm_vec_dist_quick(&A->pos, &wpA->homing_pos); @@ -166,6 +167,8 @@ int collide_weapon_weapon( obj_pair * pair ) dist = vm_vec_dist_quick(&A->pos, &wpB->homing_pos); nprintf(("AI", "Frame %i: Weapon %s shot down. Dist: %.1f, inner: %.0f, outer: %.0f\n", Framecount, wipB->name, dist, wipB->inner_radius, wipB->outer_radius)); } +#endif + return 1; } diff --git a/src/object/object.cpp b/src/object/object.cpp index c9d8597..3f90969 100644 --- a/src/object/object.cpp +++ b/src/object/object.cpp @@ -726,10 +726,14 @@ int obj_allocate(void) if (!Object_inited) obj_init(); if ( num_objects >= MAX_OBJECTS-10 ) { +#ifndef NDEBUG int num_freed; num_freed = free_object_slots(MAX_OBJECTS-10); nprintf(("warning", " *** Freed %i objects\n", num_freed)); +#else + free_object_slots(MAX_OBJECTS-10); +#endif } if (num_objects >= MAX_OBJECTS) { diff --git a/src/platform/platform.cpp b/src/platform/platform.cpp index 9d41168..151c062 100644 --- a/src/platform/platform.cpp +++ b/src/platform/platform.cpp @@ -46,6 +46,7 @@ int Watch_malloc = 0; DCF_BOOL(watch_malloc, Watch_malloc) +#ifndef NDEBUG static const char *clean_filename(const char *name) { const char *p = name+strlen(name)-1; @@ -56,6 +57,7 @@ static const char *clean_filename(const char *name) return p; } +#endif #ifndef NDEBUG void vm_free(void* ptr, const char *file, int line) diff --git a/src/scramble/scramble.cpp b/src/scramble/scramble.cpp index 99ed419..de1eade 100644 --- a/src/scramble/scramble.cpp +++ b/src/scramble/scramble.cpp @@ -209,7 +209,12 @@ void scramble_read_default(char **text, int *text_len, FILE *fp) { *text_len = _filelength(fileno(fp)); *text = (char*)malloc(*text_len+1); - fread( *text, *text_len, 1, fp ); + + if ( !fread(*text, *text_len, 1, fp) ) { + free(*text); + *text = NULL; + *text_len = 0; + } } // scramble a file @@ -243,6 +248,10 @@ void scramble_file(char *src_filename, char *dest_filename, int preprocess) fclose(fp); + if (text == NULL) { + return; + } + // open up file for writing scrambled text if ( dest_filename ) { fp = fopen(dest_filename, "wb"); @@ -284,7 +293,13 @@ void unscramble_file(char *src_filename, char *dest_filename) // read in the scrambled data scramble_len = _filelength(fileno(fp)); scramble_text = (char*)malloc(scramble_len+1); - fread( scramble_text, scramble_len, 1, fp ); + + if ( !fread(scramble_text, scramble_len, 1, fp) ) { + fclose(fp); + free(scramble_text); + return; + } + fclose(fp); // open up file for writing unscrambled text diff --git a/src/ship/ship.cpp b/src/ship/ship.cpp index 2e90d62..dfbf1e2 100644 --- a/src/ship/ship.cpp +++ b/src/ship/ship.cpp @@ -6933,6 +6933,8 @@ object *ship_find_repair_ship( object *requester_obj ) SDL_assert(requester_obj->type == OBJ_SHIP); SDL_assert((requester_obj->instance >= 0) && (requester_obj->instance < MAX_OBJECTS)); + SDL_zero(support_ships); + // if support ships are not allowed, then no support ship can repair! if ( !is_support_allowed(requester_obj) ) return NULL; -- 2.39.2