Skip to content

Commit dbcac8d

Browse files
committed
Use strdup over strlen+strcpy
1 parent 42f8050 commit dbcac8d

17 files changed

+55
-121
lines changed

Descent3/Inventory.cpp

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -580,9 +580,7 @@ bool Inventory::AddCounterMeasure(int id, int aux_type, int aux_id, int flags, c
580580
newnode->iflags |= INVF_SELECTABLE | INVF_USEABLE | INVF_MISSIONITEM | INVF_TIMEOUTONSPEW;
581581

582582
if (Weapons[id].icon_handle >= 0) {
583-
newnode->icon_name =
584-
mem_rmalloc<char>(strlen(GameBitmaps[GameTextures[Weapons[id].icon_handle].bm_handle].name) + 1);
585-
strcpy(newnode->icon_name, GameBitmaps[GameTextures[Weapons[id].icon_handle].bm_handle].name);
583+
newnode->icon_name = mem_strdup(GameBitmaps[GameTextures[Weapons[id].icon_handle].bm_handle].name);
586584
} else {
587585
newnode->icon_name = nullptr;
588586
}
@@ -647,8 +645,7 @@ bool Inventory::AddObjectItem(int otype, int oid, int oauxt, int oauxi, int flag
647645
newnode->oid = oauxi;
648646

649647
if (Object_info[oid].description) {
650-
newnode->description = mem_rmalloc<char>(strlen(Object_info[oid].description) + 1);
651-
strcpy(newnode->description, Object_info[oid].description);
648+
newnode->description = mem_strdup(Object_info[oid].description);
652649
} else {
653650
newnode->description = mem_rmalloc<char>();
654651
newnode->description[0] = 0;
@@ -672,8 +669,7 @@ bool Inventory::AddObjectItem(int otype, int oid, int oauxt, int oauxi, int flag
672669
if (flags & INVAF_LEVELLAST)
673670
newnode->iflags |= INVAF_LEVELLAST;
674671

675-
newnode->icon_name = mem_rmalloc<char>(strlen(Object_info[oid].icon_name) + 1);
676-
strcpy(newnode->icon_name, Object_info[oid].icon_name);
672+
newnode->icon_name = mem_strdup(Object_info[oid].icon_name);
677673

678674
if (description) {
679675
newnode->name = mem_strdup(description);

Descent3/LoadLevel.cpp

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1684,8 +1684,7 @@ int ReadObject(CFILE *ifile, object *objp, int handle, int fileversion) {
16841684

16851685
// Set the name
16861686
if (tempname[0]) {
1687-
objp->name = mem_rmalloc<char>(strlen(tempname) + 1);
1688-
strcpy(objp->name, tempname);
1687+
objp->name = mem_strdup(tempname);
16891688
}
16901689

16911690
// Update checksum
@@ -2444,8 +2443,7 @@ int ReadRoom(CFILE *ifile, room *rp, int version) {
24442443
char tempname[ROOM_NAME_LEN + 1];
24452444
cf_ReadString(tempname, sizeof(tempname), ifile);
24462445
if (strlen(tempname)) {
2447-
rp->name = mem_rmalloc<char>(strlen(tempname) + 1);
2448-
strcpy(rp->name, tempname);
2446+
rp->name = mem_strdup(tempname);
24492447
}
24502448
}
24512449

Descent3/TelComEffects.cpp

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1253,10 +1253,9 @@ bool CreateMovie(tceffect *tce, const char *filename) {
12531253
tce->movieinfo.filename = NULL;
12541254
tce->w = tce->h = 100;
12551255

1256-
tce->movieinfo.filename = mem_rmalloc<char>(strlen(filename) + 1);
1256+
tce->movieinfo.filename = mem_strdup(filename);
12571257
if (!tce->movieinfo.filename)
12581258
return false;
1259-
strcpy(tce->movieinfo.filename, filename);
12601259
tce->movieinfo.handle = StartMovie(filename);
12611260
if (!tce->movieinfo.handle)
12621261
return false;

Descent3/levelgoal.cpp

Lines changed: 4 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -289,8 +289,7 @@ bool lgoal::SetName(int handle, char *name) {
289289
if (m_name)
290290
mem_free(m_name);
291291

292-
m_name = mem_rmalloc<char>(strlen(name) + 1);
293-
strcpy(m_name, name);
292+
m_name = mem_strdup(name);
294293
m_modified = 1;
295294

296295
if (Game_mode & GM_MULTI && Netgame.local_role != LR_CLIENT) {
@@ -321,9 +320,7 @@ bool lgoal::SetCompletionMessage(char *message) {
321320
if (m_completion_message)
322321
mem_free(m_completion_message);
323322

324-
m_completion_message = mem_rmalloc<char>(strlen(message) + 1);
325-
strcpy(m_completion_message, message);
326-
323+
m_completion_message = mem_strdup(message);
327324
return true;
328325
}
329326

@@ -334,9 +331,7 @@ bool lgoal::SetItemName(char *iname) {
334331
if (m_item_name)
335332
mem_free(m_item_name);
336333

337-
m_item_name = mem_rmalloc<char>(strlen(iname) + 1);
338-
strcpy(m_item_name, iname);
339-
334+
m_item_name = mem_strdup(iname);
340335
return true;
341336
}
342337

@@ -443,9 +438,7 @@ bool lgoal::SetDesc(char *desc) {
443438
if (m_desc)
444439
mem_free(m_desc);
445440

446-
m_desc = mem_rmalloc<char>(strlen(desc) + 1);
447-
strcpy(m_desc, desc);
448-
441+
m_desc = mem_strdup(desc);
449442
return true;
450443
}
451444

Descent3/localization.cpp

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -678,10 +678,9 @@ void GrowString::operator+=(char *str) {
678678
node->next = NULL;
679679
curr = node;
680680
} else {
681-
root.string_data = mem_rmalloc<char>(strlen(str) + 1);
681+
root.string_data = mem_strdup(str);
682682
if (!root.string_data)
683683
return;
684-
strcpy(root.string_data, str);
685684
root.next = NULL;
686685
}
687686
}

Descent3/subtitles.cpp

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -186,11 +186,9 @@ void SubtParseSubtitles(CFILE *file) {
186186

187187
Subtitles[Num_subtitles].first_frame = first_frame;
188188
Subtitles[Num_subtitles].last_frame = last_frame;
189-
Subtitles[Num_subtitles].msg = mem_rmalloc<char>(strlen(p) + 1);
189+
Subtitles[Num_subtitles].msg = mem_strdup(p); // be sure to free this later
190190
if (!Subtitles[Num_subtitles].msg)
191191
goto subt_parse_error;
192-
strcpy(Subtitles[Num_subtitles].msg, p); // be sure to free this later
193-
194192
Num_subtitles++;
195193

196194
PARSE_NEXT_LINE();

cfile/cfile.cpp

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -522,10 +522,9 @@ CFILE *open_file_in_directory(const std::filesystem::path &filename, const char
522522
cfile = mem_rmalloc<CFILE>();
523523
if (!cfile)
524524
Error("Out of memory in open_file_in_directory()");
525-
cfile->name = mem_rmalloc<char>(strlen(PATH_TO_CSTR(using_filename)) + 1);
525+
cfile->name = mem_strdup(PATH_TO_CSTR(using_filename));
526526
if (!cfile->name)
527527
Error("Out of memory in open_file_in_directory()");
528-
strcpy(cfile->name, PATH_TO_CSTR(using_filename));
529528
cfile->file = fp;
530529
cfile->lib_handle = -1;
531530
cfile->size = ddio_GetFileLength(fp);

editor/BriefEdit.cpp

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -739,9 +739,8 @@ void BEAddTextEffect(TCTEXTDESC *desc, char *text, char *description, int id) {
739739
mem_free(befx->text);
740740
befx->text = NULL;
741741
}
742-
befx->text = mem_rmalloc<char>(strlen(text) + 1);
742+
befx->text = mem_strdup(text);
743743
ASSERT(befx->text);
744-
strcpy(befx->text, text);
745744

746745
// Setup for items not set with caps
747746
if (!(dest->caps & TCTD_FONT)) {

0 commit comments

Comments
 (0)