ntdll: Use wcscat() instead of strcatW().

Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
Alexandre Julliard 2020-03-31 11:41:22 +02:00
parent 18411a19b4
commit 80005ee016
9 changed files with 32 additions and 31 deletions

View File

@ -1099,17 +1099,17 @@ static WCHAR *build_assembly_dir(struct assembly_identity* ai)
if (!(ret = RtlAllocateHeap( GetProcessHeap(), 0, size ))) return NULL;
wcscpy( ret, arch );
strcatW( ret, undW );
strcatW( ret, name );
strcatW( ret, undW );
strcatW( ret, key );
strcatW( ret, undW );
wcscat( ret, undW );
wcscat( ret, name );
wcscat( ret, undW );
wcscat( ret, key );
wcscat( ret, undW );
NTDLL_swprintf( ret + strlenW(ret), version_formatW,
ai->version.major, ai->version.minor, ai->version.build, ai->version.revision );
strcatW( ret, undW );
strcatW( ret, lang );
strcatW( ret, undW );
strcatW( ret, mskeyW );
wcscat( ret, undW );
wcscat( ret, lang );
wcscat( ret, undW );
wcscat( ret, mskeyW );
return ret;
}
@ -1118,7 +1118,7 @@ static inline void append_string( WCHAR *buffer, const WCHAR *prefix, const WCHA
WCHAR *p = buffer;
if (!str) return;
strcatW( buffer, prefix );
wcscat( buffer, prefix );
p += strlenW(p);
*p++ = '"';
wcscpy( p, str );
@ -3062,7 +3062,7 @@ static NTSTATUS get_manifest_in_associated_manifest( struct actctx_loader* acl,
if (!(status = get_module_filename( module, &name, sizeof(dotManifestW) + 10*sizeof(WCHAR) )))
{
if (resid != 1) NTDLL_swprintf( name.Buffer + strlenW(name.Buffer), fmtW, resid );
strcatW( name.Buffer, dotManifestW );
wcscat( name.Buffer, dotManifestW );
if (!RtlDosPathNameToNtPathName_U( name.Buffer, &nameW, NULL, NULL ))
status = STATUS_RESOURCE_DATA_NOT_FOUND;
RtlFreeUnicodeString( &name );
@ -3076,7 +3076,7 @@ static NTSTATUS get_manifest_in_associated_manifest( struct actctx_loader* acl,
return STATUS_NO_MEMORY;
wcscpy( buffer, filename );
if (resid != 1) NTDLL_swprintf( buffer + strlenW(buffer), fmtW, resid );
strcatW( buffer, dotManifestW );
wcscat( buffer, dotManifestW );
RtlInitUnicodeString( &nameW, buffer );
}
@ -3700,8 +3700,8 @@ static NTSTATUS build_wndclass_section(ACTIVATION_CONTEXT* actctx, struct strsec
if (entity->u.class.versioned)
{
get_assembly_version(assembly, ptrW);
strcatW(ptrW, exclW);
strcatW(ptrW, entity->u.class.name);
wcscat(ptrW, exclW);
wcscat(ptrW, entity->u.class.name);
}
else
{

View File

@ -689,7 +689,7 @@ static void get_image_path( const char *argv0, UNICODE_STRING *path )
if (RtlDoesFileExists_U( full_name )) goto done;
if (len < (MAX_PATH - 4) * sizeof(WCHAR) && !strchrW( file_part, '.' ))
{
strcatW( file_part, exeW );
wcscat( file_part, exeW );
if (RtlDoesFileExists_U( full_name )) goto done;
}
/* check for builtin path inside system directory */
@ -710,8 +710,8 @@ static void get_image_path( const char *argv0, UNICODE_STRING *path )
len = strlenW( system_dir );
if (strlenW( name ) >= MAX_PATH - 4 - len) goto failed;
wcscpy( full_name, system_dir );
strcatW( full_name, name );
if (!strchrW( name, '.' )) strcatW( full_name, exeW );
wcscat( full_name, name );
if (!strchrW( name, '.' )) wcscat( full_name, exeW );
}
}
done:

View File

@ -1775,8 +1775,8 @@ static BOOL get_builtin_fullname( UNICODE_STRING *nt_name, const UNICODE_STRING
(strlenW(system_dir) + len + 5) * sizeof(WCHAR) )))
return FALSE;
wcscpy( fullname, nt_prefixW );
strcatW( fullname, system_dir );
strcatW( fullname, filenameW );
wcscat( fullname, system_dir );
wcscat( fullname, filenameW );
done:
RtlInitUnicodeString( nt_name, fullname );
return TRUE;
@ -2860,7 +2860,7 @@ static NTSTATUS search_dll_file( LPCWSTR paths, LPCWSTR search, UNICODE_STRING *
{
/* not found, return file in the system dir to be loaded as builtin */
wcscpy( name, system_dir );
strcatW( name, search );
wcscat( name, search );
if (!RtlDosPathNameToNtPathName_U( name, nt_name, NULL, NULL )) status = STATUS_NO_MEMORY;
}
else status = STATUS_IMAGE_MACHINE_TYPE_MISMATCH;
@ -2896,7 +2896,7 @@ static NTSTATUS find_dll_file( const WCHAR *load_path, const WCHAR *libname, con
(strlenW(libname)+strlenW(default_ext)+1) * sizeof(WCHAR))))
return STATUS_NO_MEMORY;
wcscpy( dllname, libname );
strcatW( dllname, default_ext );
wcscat( dllname, default_ext );
libname = dllname;
}
}

View File

@ -344,8 +344,8 @@ static HANDLE get_app_key( const WCHAR *app_name )
strlenW(app_name) * sizeof(WCHAR) );
if (!str) return 0;
wcscpy( str, AppDefaultsW );
strcatW( str, app_name );
strcatW( str, DllOverridesW );
wcscat( str, app_name );
wcscat( str, DllOverridesW );
RtlOpenCurrentUser( KEY_ALL_ACCESS, &root );
attr.Length = sizeof(attr);

View File

@ -679,8 +679,8 @@ static NTSTATUS open_nls_data_file( ULONG type, ULONG id, HANDLE *file )
return STATUS_NO_MEMORY;
if (!RtlQueryEnvironmentVariable_U( NULL, &nameW, &valueW ))
{
strcatW( valueW.Buffer, dataprefixW );
strcatW( valueW.Buffer, name );
wcscat( valueW.Buffer, dataprefixW );
wcscat( valueW.Buffer, name );
valueW.Length = strlenW(valueW.Buffer) * sizeof(WCHAR);
InitializeObjectAttributes( &attr, &valueW, 0, 0, NULL );
status = NtOpenFile( file, GENERIC_READ, &attr, &io, FILE_SHARE_READ, FILE_SYNCHRONOUS_IO_ALERT );
@ -877,7 +877,7 @@ static LCID unix_locale_to_lcid( const char *unix_name )
wcscpy( win_name, buffer );
if (modifier)
{
if (!strcmpW( modifier, latinW )) strcatW( win_name, latnW );
if (!strcmpW( modifier, latinW )) wcscat( win_name, latnW );
else if (!strcmpW( modifier, euroW )) {} /* ignore */
else return 0;
}

View File

@ -303,6 +303,7 @@ int WINAPIV NTDLL_swprintf( WCHAR *str, const WCHAR *format, ... );
#define wcslwr(s) NTDLL__wcslwr(s)
#define wcsupr(s) NTDLL__wcsupr(s)
#define wcscpy(d,s) NTDLL_wcscpy(d,s)
#define wcscat(d,s) NTDLL_wcscat(d,s)
#define wcstoul(s,e,b) NTDLL_wcstoul(s,e,b)
/* convert from straight ASCII to Unicode without depending on the current codepage */

View File

@ -399,7 +399,7 @@ NTSTATUS WINAPI RtlDosPathNameToNtPathName_U_WithStatus(const WCHAR *dos_path, U
{
case UNC_PATH: /* \\foo */
offset = 2;
strcatW(ntpath->Buffer, UncPfxW);
wcscat(ntpath->Buffer, UncPfxW);
break;
case DEVICE_PATH: /* \\.\foo */
offset = 4;
@ -409,7 +409,7 @@ NTSTATUS WINAPI RtlDosPathNameToNtPathName_U_WithStatus(const WCHAR *dos_path, U
break;
}
strcatW(ntpath->Buffer, ptr + offset);
wcscat(ntpath->Buffer, ptr + offset);
ntpath->Length = strlenW(ntpath->Buffer) * sizeof(WCHAR);
if (file_part && *file_part)
@ -514,7 +514,7 @@ ULONG WINAPI RtlDosSearchPath_U(LPCWSTR paths, LPCWSTR search, LPCWSTR ext,
/* append '\\' if none is present */
if (needed > 0 && name[needed - 1] != '\\') name[needed++] = '\\';
wcscpy(&name[needed], search);
if (ext) strcatW(&name[needed], ext);
if (ext) wcscat(&name[needed], ext);
if (RtlDoesFileExists_U(name))
{
len = RtlGetFullPathName_U(name, buffer_size, buffer, file_part);

View File

@ -1193,7 +1193,7 @@ static NTSTATUS RTL_KeyHandleCreateObject(ULONG RelativeTo, PCWSTR Path, POBJECT
return STATUS_NO_MEMORY;
wcscpy(str->Buffer, base);
strcatW(str->Buffer, Path);
wcscat(str->Buffer, Path);
str->Length = len - sizeof(WCHAR);
str->MaximumLength = len;
InitializeObjectAttributes(regkey, str, OBJ_CASE_INSENSITIVE, NULL, NULL);

View File

@ -505,7 +505,7 @@ void version_init(void)
if ((p = strrchrW( appname, '\\' ))) appname = p + 1;
wcscpy( appversion, appdefaultsW );
strcatW( appversion, appname );
wcscat( appversion, appname );
RtlInitUnicodeString( &nameW, appversion );
attr.RootDirectory = config_key;