From 80005ee016aeed42967adfe5b3042803d008c50d Mon Sep 17 00:00:00 2001 From: Alexandre Julliard Date: Tue, 31 Mar 2020 11:41:22 +0200 Subject: [PATCH] ntdll: Use wcscat() instead of strcatW(). Signed-off-by: Alexandre Julliard --- dlls/ntdll/actctx.c | 28 ++++++++++++++-------------- dlls/ntdll/env.c | 6 +++--- dlls/ntdll/loader.c | 8 ++++---- dlls/ntdll/loadorder.c | 4 ++-- dlls/ntdll/locale.c | 6 +++--- dlls/ntdll/ntdll_misc.h | 1 + dlls/ntdll/path.c | 6 +++--- dlls/ntdll/reg.c | 2 +- dlls/ntdll/version.c | 2 +- 9 files changed, 32 insertions(+), 31 deletions(-) diff --git a/dlls/ntdll/actctx.c b/dlls/ntdll/actctx.c index 03a18a1928c..e52710565ce 100644 --- a/dlls/ntdll/actctx.c +++ b/dlls/ntdll/actctx.c @@ -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 { diff --git a/dlls/ntdll/env.c b/dlls/ntdll/env.c index ecc2c38abb8..f587bdef7e4 100644 --- a/dlls/ntdll/env.c +++ b/dlls/ntdll/env.c @@ -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: diff --git a/dlls/ntdll/loader.c b/dlls/ntdll/loader.c index f67e1357ad3..da19e74a76d 100644 --- a/dlls/ntdll/loader.c +++ b/dlls/ntdll/loader.c @@ -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; } } diff --git a/dlls/ntdll/loadorder.c b/dlls/ntdll/loadorder.c index 35dd321e994..1a3c579deee 100644 --- a/dlls/ntdll/loadorder.c +++ b/dlls/ntdll/loadorder.c @@ -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); diff --git a/dlls/ntdll/locale.c b/dlls/ntdll/locale.c index 1487338cfab..88cfb08a6b0 100644 --- a/dlls/ntdll/locale.c +++ b/dlls/ntdll/locale.c @@ -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; } diff --git a/dlls/ntdll/ntdll_misc.h b/dlls/ntdll/ntdll_misc.h index 37128521dcc..2a32660e72a 100644 --- a/dlls/ntdll/ntdll_misc.h +++ b/dlls/ntdll/ntdll_misc.h @@ -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 */ diff --git a/dlls/ntdll/path.c b/dlls/ntdll/path.c index 5804f8f53f5..16661661814 100644 --- a/dlls/ntdll/path.c +++ b/dlls/ntdll/path.c @@ -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); diff --git a/dlls/ntdll/reg.c b/dlls/ntdll/reg.c index 3ac66fb1c69..31705248841 100644 --- a/dlls/ntdll/reg.c +++ b/dlls/ntdll/reg.c @@ -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); diff --git a/dlls/ntdll/version.c b/dlls/ntdll/version.c index 8570a2fd510..87765d55623 100644 --- a/dlls/ntdll/version.c +++ b/dlls/ntdll/version.c @@ -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;