From 6c0cca18782fe157cf40fde90b22f5b742826eeb Mon Sep 17 00:00:00 2001 From: ripsaw8080 Date: Sat, 3 Oct 2015 09:21:56 +0000 Subject: [PATCH] Don't write past the terminator in the DTA name field when setting search results. This is what DOS does, and writing junk after the terminator was not good in any case. Fixes file listing in the 16-bit version of Galaxy Player. Imported-from: https://svn.code.sf.net/p/dosbox/code-0/dosbox/trunk@3945 --- src/dos/dos_classes.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/dos/dos_classes.cpp b/src/dos/dos_classes.cpp index 73c895b3..27658b42 100644 --- a/src/dos/dos_classes.cpp +++ b/src/dos/dos_classes.cpp @@ -340,7 +340,7 @@ void DOS_DTA::SetupSearch(Bit8u _sdrive,Bit8u _sattr,char * pattern) { } void DOS_DTA::SetResult(const char * _name,Bit32u _size,Bit16u _date,Bit16u _time,Bit8u _attr) { - MEM_BlockWrite(pt+offsetof(sDTA,name),(void *)_name,DOS_NAMELENGTH_ASCII); + MEM_BlockWrite(pt+offsetof(sDTA,name),(void *)_name,strlen(_name)+1); sSave(sDTA,size,_size); sSave(sDTA,date,_date); sSave(sDTA,time,_time);