Created
May 2, 2024 14:48
-
-
Save icculus/87064e41c3fdf5d102fd98c8b12498a8 to your computer and use it in GitHub Desktop.
AddressSanitizer and valgrind fixes from Ryan's 2020 Descent 3 build...
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
commit ee39d8b93ac9c70f7ef11ada3f684d26c9135bd4 | |
Author: Ryan C. Gordon <[email protected]> | |
Date: Sun Jun 9 00:18:36 2019 -0400 | |
Some initial fixes from AddressSanitizer. | |
diff --git a/Main/ddio_lnx/lnxfile.cpp b/Main/ddio_lnx/lnxfile.cpp | |
index 2d9ecb0..de35fe8 100644 | |
--- a/Main/ddio_lnx/lnxfile.cpp | |
+++ b/Main/ddio_lnx/lnxfile.cpp | |
@@ -275,13 +275,13 @@ void ddio_MakePath(char* newPath, const char* absolutePathHeader, const char* su | |
ASSERT(absolutePathHeader); | |
ASSERT(subDir); | |
- if (newPath != absolutePathHeader){ | |
+ if (strcmp(newPath, absolutePathHeader) != 0) { | |
strcpy(newPath, absolutePathHeader); | |
} | |
// Add the first sub directory | |
pathLength = strlen(newPath); | |
- if (newPath[pathLength - 1] != delimiter){ | |
+ if ((pathLength > 0) && newPath[pathLength - 1] != delimiter){ | |
newPath[pathLength] = delimiter; // add the delimiter | |
newPath[pathLength+1] = 0; // terminate the string | |
} | |
diff --git a/Main/terrain.cpp b/Main/terrain.cpp | |
index b81c5a8..f4cd1d4 100644 | |
--- a/Main/terrain.cpp | |
+++ b/Main/terrain.cpp | |
@@ -29,8 +29,9 @@ | |
// How far we can see (in world coordinates) | |
float VisibleTerrainZ; | |
-terrain_segment Terrain_seg[TERRAIN_WIDTH*TERRAIN_DEPTH]; | |
-terrain_tex_segment Terrain_tex_seg[TERRAIN_TEX_WIDTH*TERRAIN_TEX_DEPTH]; | |
+// added "* 2" because we are overflowing these arrays in GenerateLODDeltas. --ryan, 2019. | |
+terrain_segment Terrain_seg[TERRAIN_WIDTH*TERRAIN_DEPTH*2]; | |
+terrain_tex_segment Terrain_tex_seg[TERRAIN_TEX_WIDTH*TERRAIN_TEX_DEPTH*2]; | |
terrain_sky Terrain_sky; | |
#if (!defined(RELEASE) || defined(NEWEDITOR)) | |
diff --git a/Main/ui/UIRes.cpp b/Main/ui/UIRes.cpp | |
index f4fe24f..98685eb 100644 | |
--- a/Main/ui/UIRes.cpp | |
+++ b/Main/ui/UIRes.cpp | |
@@ -153,13 +153,13 @@ const UITextItem& UITextItem::operator =(const UITextItem& item) | |
m_Text = mem_strdup(item.m_Text); | |
if (!m_Text) | |
Error("Memory allocation failed in UITextItem."); | |
+ strcpy(m_Text, item.m_Text); | |
} | |
else { | |
m_Text = &UITextItem::dummy_str[0]; | |
dummy_str[0] = 0; | |
} | |
- strcpy(m_Text, item.m_Text); | |
m_Color = item.m_Color; | |
m_Alpha = item.m_Alpha; | |
m_Font = item.m_Font; | |
commit 2400113892c1b0052110c11fd4cd0494d9076850 | |
Author: Ryan C. Gordon <[email protected]> | |
Date: Thu Jun 13 09:10:30 2019 -0400 | |
A bunch of AddressSanitizer fixes. | |
diff --git a/Main/AIGoal.cpp b/Main/AIGoal.cpp | |
index a803761..0223714 100644 | |
--- a/Main/AIGoal.cpp | |
+++ b/Main/AIGoal.cpp | |
@@ -795,31 +795,34 @@ void GoalDoFrame(object *obj) | |
posp = &goal_obj->pos; | |
roomnum = goal_obj->roomnum; | |
- float dist = vm_VectorDistance(&AIDynamicPath[ai_info->path.num_paths - 1].pos[ai_info->path.path_end_node[ai_info->path.num_paths - 1]], posp); | |
- | |
- if(dist < 5.0f && ai_info->path.num_paths != 0) | |
+ if (ai_info->path.num_paths > 0) | |
{ | |
- int obj_room = BOA_INDEX(obj->roomnum); | |
- int path_room = BOA_INDEX(AIDynamicPath[ai_info->path.cur_path].roomnum[ai_info->path.cur_node]); | |
- vector path_pos = AIDynamicPath[ai_info->path.cur_path].pos[ai_info->path.cur_node]; | |
+ const float dist = vm_VectorDistance(&AIDynamicPath[ai_info->path.num_paths - 1].pos[ai_info->path.path_end_node[ai_info->path.num_paths - 1]], posp); | |
- if(obj_room != path_room) | |
+ if(dist < 5.0f) | |
{ | |
- fvi_query fq; | |
- fvi_info hit_info; | |
- | |
- fq.p0 = &obj->pos; | |
- fq.startroom = obj->roomnum; | |
- fq.p1 = &path_pos; | |
- fq.rad = obj->size / 4.0f; | |
- fq.thisobjnum = OBJNUM(obj); | |
- fq.ignore_obj_list = NULL; | |
- fq.flags = FQ_CHECK_OBJS | FQ_NO_RELINK | FQ_IGNORE_NON_LIGHTMAP_OBJECTS; | |
+ int obj_room = BOA_INDEX(obj->roomnum); | |
+ int path_room = BOA_INDEX(AIDynamicPath[ai_info->path.cur_path].roomnum[ai_info->path.cur_node]); | |
+ vector path_pos = AIDynamicPath[ai_info->path.cur_path].pos[ai_info->path.cur_node]; | |
- if(fvi_FindIntersection(&fq, &hit_info) == HIT_NONE) | |
+ if(obj_room != path_room) | |
{ | |
- mprintf((0, "AI OBJ Path: No need to update the path for obj %d\n", OBJNUM(obj))); | |
- f_make_path = false; | |
+ fvi_query fq; | |
+ fvi_info hit_info; | |
+ | |
+ fq.p0 = &obj->pos; | |
+ fq.startroom = obj->roomnum; | |
+ fq.p1 = &path_pos; | |
+ fq.rad = obj->size / 4.0f; | |
+ fq.thisobjnum = OBJNUM(obj); | |
+ fq.ignore_obj_list = NULL; | |
+ fq.flags = FQ_CHECK_OBJS | FQ_NO_RELINK | FQ_IGNORE_NON_LIGHTMAP_OBJECTS; | |
+ | |
+ if(fvi_FindIntersection(&fq, &hit_info) == HIT_NONE) | |
+ { | |
+ mprintf((0, "AI OBJ Path: No need to update the path for obj %d\n", OBJNUM(obj))); | |
+ f_make_path = false; | |
+ } | |
} | |
} | |
} | |
@@ -837,31 +840,34 @@ void GoalDoFrame(object *obj) | |
posp = &cur_goal->g_info.pos; | |
roomnum = cur_goal->g_info.roomnum; | |
- float dist = vm_VectorDistance(&AIDynamicPath[ai_info->path.num_paths - 1].pos[ai_info->path.path_end_node[ai_info->path.num_paths - 1]], posp); | |
- | |
- if(dist < 5.0f && ai_info->path.num_paths != 0) | |
+ if (ai_info->path.num_paths > 0) | |
{ | |
- int obj_room = BOA_INDEX(obj->roomnum); | |
- int path_room = BOA_INDEX(AIDynamicPath[ai_info->path.cur_path].roomnum[ai_info->path.cur_node]); | |
- vector path_pos = AIDynamicPath[ai_info->path.cur_path].pos[ai_info->path.cur_node]; | |
+ const float dist = vm_VectorDistance(&AIDynamicPath[ai_info->path.num_paths - 1].pos[ai_info->path.path_end_node[ai_info->path.num_paths - 1]], posp); | |
- if(obj_room != path_room) | |
+ if(dist < 5.0f) | |
{ | |
- fvi_query fq; | |
- fvi_info hit_info; | |
- | |
- fq.p0 = &obj->pos; | |
- fq.startroom = obj->roomnum; | |
- fq.p1 = &path_pos; | |
- fq.rad = obj->size / 4.0f; | |
- fq.thisobjnum = OBJNUM(obj); | |
- fq.ignore_obj_list = NULL; | |
- fq.flags = FQ_CHECK_OBJS | FQ_NO_RELINK | FQ_IGNORE_NON_LIGHTMAP_OBJECTS; | |
- | |
- if(fvi_FindIntersection(&fq, &hit_info) == HIT_NONE) | |
+ int obj_room = BOA_INDEX(obj->roomnum); | |
+ int path_room = BOA_INDEX(AIDynamicPath[ai_info->path.cur_path].roomnum[ai_info->path.cur_node]); | |
+ vector path_pos = AIDynamicPath[ai_info->path.cur_path].pos[ai_info->path.cur_node]; | |
+ | |
+ if(obj_room != path_room) | |
{ | |
- mprintf((0, "AI POS Path: No need to update the path for obj %d\n", OBJNUM(obj))); | |
- f_make_path = false; | |
+ fvi_query fq; | |
+ fvi_info hit_info; | |
+ | |
+ fq.p0 = &obj->pos; | |
+ fq.startroom = obj->roomnum; | |
+ fq.p1 = &path_pos; | |
+ fq.rad = obj->size / 4.0f; | |
+ fq.thisobjnum = OBJNUM(obj); | |
+ fq.ignore_obj_list = NULL; | |
+ fq.flags = FQ_CHECK_OBJS | FQ_NO_RELINK | FQ_IGNORE_NON_LIGHTMAP_OBJECTS; | |
+ | |
+ if(fvi_FindIntersection(&fq, &hit_info) == HIT_NONE) | |
+ { | |
+ mprintf((0, "AI POS Path: No need to update the path for obj %d\n", OBJNUM(obj))); | |
+ f_make_path = false; | |
+ } | |
} | |
} | |
} | |
diff --git a/Main/module/module.cpp b/Main/module/module.cpp | |
index fe02255..78802c3 100644 | |
--- a/Main/module/module.cpp | |
+++ b/Main/module/module.cpp | |
@@ -232,7 +232,7 @@ void dd_SplitPath(const char* srcPath, char* path, char* filename, char* ext) | |
// Check for an extension | |
/////////////////////////////////////// | |
int t = totalLen - 1; | |
- while( (srcPath[t]!='.') && (srcPath[t]!='/') && (t>=0) ) t--; | |
+ while( (t>=0) && (srcPath[t]!='.') && (srcPath[t]!='/') ) t--; | |
//see if we are at an extension | |
if((t>=0)&&(srcPath[t]=='.')){ | |
//we have an extension | |
@@ -252,7 +252,7 @@ void dd_SplitPath(const char* srcPath, char* path, char* filename, char* ext) | |
// Check for file name | |
//////////////////////////////////// | |
int temp = (extStart!=-1)?(extStart):(totalLen-1); | |
- while( (srcPath[temp]!='/') && (temp>=0) ) temp--; | |
+ while( (temp>=0) && (srcPath[temp]!='/') ) temp--; | |
if(temp<0) | |
temp = 0; | |
if(srcPath[temp]=='/'){ | |
diff --git a/Main/physics/FindIntersection.cpp b/Main/physics/FindIntersection.cpp | |
index 0b0c066..9b9f953 100644 | |
--- a/Main/physics/FindIntersection.cpp | |
+++ b/Main/physics/FindIntersection.cpp | |
@@ -2194,7 +2194,7 @@ int fvi_QuickDistObjectList(vector *pos, int init_room_index, float rad, short * | |
{ | |
if(num_objects >= max_elements) break; | |
- if((f_include_non_collide_objects) || CollisionRayResult[Objects[cur_obj_index].type] != RESULT_NOTHING) | |
+ if((f_include_non_collide_objects) || ((Objects[cur_obj_index].type != OBJ_NONE) && (CollisionRayResult[Objects[cur_obj_index].type] != RESULT_NOTHING))) | |
{ | |
if(!f_only_players_and_ais || Objects[cur_obj_index].type == OBJ_PLAYER || Objects[cur_obj_index].ai_info) | |
{ | |
@@ -2224,7 +2224,7 @@ int fvi_QuickDistObjectList(vector *pos, int init_room_index, float rad, short * | |
{ | |
if(num_objects >= max_elements) break; | |
- if((f_include_non_collide_objects) || CollisionRayResult[Objects[x].type] != RESULT_NOTHING) | |
+ if((f_include_non_collide_objects) || ((Objects[x].type != OBJ_NONE) && (CollisionRayResult[Objects[x].type] != RESULT_NOTHING))) | |
{ | |
if(!f_only_players_and_ais || Objects[x].type == OBJ_PLAYER || Objects[x].ai_info) | |
{ | |
@@ -2272,7 +2272,7 @@ int fvi_QuickDistObjectList(vector *pos, int init_room_index, float rad, short * | |
while(cur_obj_index > -1) | |
{ | |
if(num_objects >= max_elements) break; | |
- if((f_include_non_collide_objects) || CollisionRayResult[Objects[cur_obj_index].type] != RESULT_NOTHING) | |
+ if((f_include_non_collide_objects) || ((Objects[cur_obj_index].type != OBJ_NONE) && (CollisionRayResult[Objects[cur_obj_index].type] != RESULT_NOTHING))) | |
{ | |
if(!f_only_players_and_ais || Objects[cur_obj_index].type == OBJ_PLAYER || Objects[cur_obj_index].ai_info) | |
{ | |
@@ -4660,7 +4660,7 @@ inline int GetFaceAlpha(face *fp,int bm_handle) | |
ret |= ATF_VERTEX; | |
//Check for transparency | |
- if (GameBitmaps[bm_handle].format!=BITMAP_FORMAT_4444 && GameTextures[fp->tmap].flags & TF_TMAP2) | |
+ if ((bm_handle >= 0) && (GameBitmaps[bm_handle].format!=BITMAP_FORMAT_4444) && (GameTextures[fp->tmap].flags & TF_TMAP2)) | |
ret |= ATF_TEXTURE; | |
} | |
diff --git a/Main/postrender.cpp b/Main/postrender.cpp | |
index 54fd62e..6ccb748 100644 | |
--- a/Main/postrender.cpp | |
+++ b/Main/postrender.cpp | |
@@ -104,11 +104,12 @@ static int Postrender_sort_func(const postrender_struct *a, const postrender_str | |
void SortPostrenders () | |
{ | |
postrender_struct v,t; | |
+ const int maxidx = Num_postrenders-1; | |
int pop_val; | |
int i,j; | |
int l,r; | |
l=0; | |
- r=Num_postrenders-1; | |
+ r=maxidx; | |
ushort state_stack_counter=0; | |
ushort state_stack[MAX_POSTRENDERS]; | |
@@ -123,10 +124,10 @@ void SortPostrenders () | |
v=Postrender_list[r]; | |
while (1) | |
{ | |
- while (Postrender_list[++i].z < v.z) | |
+ while ((i < maxidx) && (Postrender_list[++i].z < v.z)) | |
; | |
- while (Postrender_list[--j].z > v.z) | |
+ while ((j > 0) && (Postrender_list[--j].z > v.z)) | |
; | |
if (i>=j) | |
diff --git a/Main/render.cpp b/Main/render.cpp | |
index 36dac01..6d0af9f 100644 | |
--- a/Main/render.cpp | |
+++ b/Main/render.cpp | |
@@ -5090,11 +5090,12 @@ void FogClipPoints (g3Point *on_pnt,g3Point *off_pnt,g3Point *dest,float zval,in | |
void SortStates (state_limited_element *state_array,int cellcount) | |
{ | |
state_limited_element v,t; | |
+ const int maxidx = cellcount-1; | |
int pop_val; | |
int i,j; | |
int l,r; | |
l=0; | |
- r=cellcount-1; | |
+ r=maxidx; | |
ushort state_stack_counter=0; | |
ushort state_stack[2000]; | |
@@ -5107,9 +5108,9 @@ void SortStates (state_limited_element *state_array,int cellcount) | |
v=state_array[r]; | |
while (1) | |
{ | |
- while (state_array[++i].sort_key < v.sort_key) | |
+ while ((i < maxidx) && (state_array[++i].sort_key < v.sort_key)) | |
; | |
- while (state_array[--j].sort_key > v.sort_key) | |
+ while ((j > 0) && (state_array[--j].sort_key > v.sort_key)) | |
; | |
if (i>=j) | |
break; | |
diff --git a/Main/scorch.cpp b/Main/scorch.cpp | |
index 70736c4..0f8a8c9 100644 | |
--- a/Main/scorch.cpp | |
+++ b/Main/scorch.cpp | |
@@ -130,7 +130,7 @@ int Scorch_texture_handles[MAX_SCORCH_TEXTURES]; | |
//Called when a new level is started to reset the scorch list | |
void ResetScorches() | |
{ | |
- Scorch_start = Scorch_end = -1; | |
+ Scorch_start = Scorch_end = 0; | |
} | |
//Delete the specified scorch mark | |
@@ -242,8 +242,8 @@ void AddScorch(int roomnum,int facenum,vector *pos,int texture_handle,float size | |
Scorch_start = 0; | |
} | |
Scorch_end = new_end; | |
- if (Scorch_start == -1) | |
- Scorch_start = 0; | |
+ | |
+ ASSERT(Scorch_start >= 0); | |
//Get a pointer to our struct | |
sp = &Scorches[Scorch_end]; | |
diff --git a/Main/scripts/linux_lib.cpp b/Main/scripts/linux_lib.cpp | |
index 8212692..56bc39d 100644 | |
--- a/Main/scripts/linux_lib.cpp | |
+++ b/Main/scripts/linux_lib.cpp | |
@@ -20,7 +20,7 @@ void _splitpath(const char *srcPath,char *drive,char *path,char *filename,char * | |
// Check for an extension | |
/////////////////////////////////////// | |
int t = totalLen - 1; | |
- while( (srcPath[t]!='.') && (srcPath[t]!='/') && (t>=0) ) t--; | |
+ while( (t>=0) && (srcPath[t]!='.') && (srcPath[t]!='/') ) t--; | |
//see if we are at an extension | |
if((t>=0)&&(srcPath[t]=='.')){ | |
//we have an extension | |
@@ -40,7 +40,7 @@ void _splitpath(const char *srcPath,char *drive,char *path,char *filename,char * | |
// Check for file name | |
//////////////////////////////////// | |
int temp = (extStart!=-1)?(extStart):(totalLen-1); | |
- while( (srcPath[temp]!='/') && (temp>=0) ) temp--; | |
+ while( (temp>=0) && (srcPath[temp]!='/') ) temp--; | |
if(temp<0) | |
temp = 0; | |
if(srcPath[temp]=='/'){ | |
diff --git a/Main/sndlib/hlsoundlib.cpp b/Main/sndlib/hlsoundlib.cpp | |
index 2f193ce..17427fb 100644 | |
--- a/Main/sndlib/hlsoundlib.cpp | |
+++ b/Main/sndlib/hlsoundlib.cpp | |
@@ -962,6 +962,9 @@ bool hlsSystem::ComputePlayInfo(int sound_obj_index, vector *virtual_pos, vector | |
sound_seg = m_sound_objects[sound_obj_index].m_link_info.pos_info.segnum; | |
} | |
+ if (sound_seg == -1) | |
+ return false; | |
+ | |
sound_seg = BOA_INDEX(sound_seg); | |
ear_seg = BOA_INDEX(Viewer_object->roomnum); | |
if(!BOA_IsSoundAudible(sound_seg, ear_seg)) | |
commit aaa380108ad26b39782a520f3a4aeae7315dba9e | |
Author: Ryan C. Gordon <[email protected]> | |
Date: Wed Jun 19 02:23:07 2019 -0400 | |
A bunch of AddressSanitizer fixes. | |
diff --git a/Main/Player.cpp b/Main/Player.cpp | |
index 70243ab..5c91f8a 100644 | |
--- a/Main/Player.cpp | |
+++ b/Main/Player.cpp | |
@@ -1359,7 +1359,7 @@ int PlayerGetRandomStartPosition (int slot) | |
} | |
else | |
{ | |
- objnum=Terrain_seg[Players[num].start_roomnum].objects; | |
+ objnum=Terrain_seg[CELLNUM(Players[num].start_roomnum)].objects; | |
} | |
int bad=0; | |
for (;objnum!=-1 && !bad;objnum=Objects[objnum].next) | |
diff --git a/Main/ddio_lnx/lnxfile.cpp b/Main/ddio_lnx/lnxfile.cpp | |
index de35fe8..2a6a595 100644 | |
--- a/Main/ddio_lnx/lnxfile.cpp | |
+++ b/Main/ddio_lnx/lnxfile.cpp | |
@@ -138,7 +138,7 @@ void ddio_SplitPath(const char* srcPath, char* path, char* filename, char* ext) | |
// Check for an extension | |
/////////////////////////////////////// | |
int t = totalLen - 1; | |
- while( (srcPath[t]!='.') && (srcPath[t]!='/') && (t>=0) ) t--; | |
+ while( (t>=0) && (srcPath[t]!='.') && (srcPath[t]!='/') ) t--; | |
//see if we are at an extension | |
if((t>=0)&&(srcPath[t]=='.')){ | |
//we have an extension | |
diff --git a/Main/lib/mdllinit.h b/Main/lib/mdllinit.h | |
index 736b1a6..efa781e 100644 | |
--- a/Main/lib/mdllinit.h | |
+++ b/Main/lib/mdllinit.h | |
@@ -292,8 +292,8 @@ | |
DLLUse_DirectPlay = (bool *)API.vp[22]; | |
#endif | |
DLLDedicated_server = (bool *)API.vp[25]; | |
- DLLTCP_active = (BOOL)*API.vp[26]; | |
- DLLIPX_active = (BOOL)*API.vp[27]; | |
+ DLLTCP_active = *((BOOL *)(API.vp[26])); | |
+ DLLIPX_active = *((BOOL *)(API.vp[27])); | |
DLLnw_ListenPort = (unsigned short)(size_t)API.vp[28]; | |
DLLMulti_Gamelist_changed = (bool *)API.vp[29]; | |
DLLPXO_hosted_lobby_name = (char *)API.vp[30]; | |
diff --git a/Main/multi_dll_mgr.cpp b/Main/multi_dll_mgr.cpp | |
index 9f06eda..25aca90 100644 | |
--- a/Main/multi_dll_mgr.cpp | |
+++ b/Main/multi_dll_mgr.cpp | |
@@ -1214,8 +1214,7 @@ void NewUIWindowLoadBackgroundImage(NewUIWindow * item,const char *image_name) | |
} | |
void DeleteUIItem(void *delitem) | |
{ | |
- | |
- delete (UIItem *) delitem; | |
+ delete delitem; | |
} | |
void GadgetDestroy(UIGadget *item) | |
{ | |
diff --git a/Main/networking/networking.cpp b/Main/networking/networking.cpp | |
index 7056463..9578990 100644 | |
--- a/Main/networking/networking.cpp | |
+++ b/Main/networking/networking.cpp | |
@@ -488,7 +488,7 @@ SOCKET Reliable_IPX_socket = INVALID_SOCKET; | |
float first_sent_iamhere = 0; | |
float last_sent_iamhere = 0; | |
-unsigned int serverconn = 0xFFFFFFFF; | |
+int serverconn = -1; | |
#ifdef WIN32 | |
#pragma pack(pop,r_udp) | |
@@ -1524,8 +1524,9 @@ void nw_SendReliableAck(SOCKADDR *raddr,unsigned int sig, network_protocol link_ | |
network_address send_address; | |
memset(&send_address,0,sizeof(network_address)); | |
- | |
- send_address.connection_type = reliable_sockets[serverconn].connection_type; | |
+ | |
+ // this is set below anyhow, but serverconn might be -1 here, so I commented this out. --ryan, 2019. | |
+ //send_address.connection_type = reliable_sockets[serverconn].connection_type; | |
if(NP_TCP==link_type) | |
{ | |
@@ -1613,7 +1614,7 @@ void nw_WorkReliable(ubyte * data,int len,network_address *naddr) | |
reliable_socket *rsocket = NULL; | |
//Check to see if we need to send a packet out. | |
- if((reliable_sockets[serverconn].status==RNF_LIMBO) && ((serverconn!=-1)&&(timer_GetTime() - last_sent_iamhere)>NETRETRYTIME) ) | |
+ if( ((serverconn!=-1)&&(timer_GetTime() - last_sent_iamhere)>NETRETRYTIME) && (reliable_sockets[serverconn].status==RNF_LIMBO) ) | |
{ | |
reliable_header conn_header; | |
//Now send I_AM_HERE packet | |
commit e5f5664b1c379f2a26f258e10607c8ee224496aa | |
Author: Ryan C. Gordon <[email protected]> | |
Date: Thu Jun 20 02:18:42 2019 -0400 | |
Fixed valgrind error. | |
diff --git a/Main/ddio_lnx/lnxfile.cpp b/Main/ddio_lnx/lnxfile.cpp | |
index 98c828c..c7a862d 100644 | |
--- a/Main/ddio_lnx/lnxfile.cpp | |
+++ b/Main/ddio_lnx/lnxfile.cpp | |
@@ -275,9 +275,9 @@ void ddio_MakePath(char* newPath, const char* absolutePathHeader, const char* su | |
ASSERT(absolutePathHeader); | |
ASSERT(subDir); | |
- if (strcmp(newPath, absolutePathHeader) != 0) { | |
+// if (strcmp(newPath, absolutePathHeader) != 0) { | |
strcpy(newPath, absolutePathHeader); | |
- } | |
+// } | |
// Add the first sub directory | |
pathLength = strlen(newPath); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment