Code cleanups (strlen, casts, size_t, ...)
This commit is contained in:
parent
9b1626ee6e
commit
f01e042211
@ -91,6 +91,7 @@ static BOOL audin_alsa_set_params(AudinALSADevice* alsa,
|
||||
snd_pcm_t* capture_handle)
|
||||
{
|
||||
int error;
|
||||
SSIZE_T s;
|
||||
UINT32 channels = alsa->aformat.nChannels;
|
||||
snd_pcm_hw_params_t* hw_params;
|
||||
snd_pcm_format_t format = audin_alsa_format(alsa->aformat.wFormatTag, alsa->aformat.wBitsPerSample);
|
||||
@ -113,8 +114,13 @@ static BOOL audin_alsa_set_params(AudinALSADevice* alsa,
|
||||
snd_pcm_hw_params(capture_handle, hw_params);
|
||||
snd_pcm_hw_params_free(hw_params);
|
||||
snd_pcm_prepare(capture_handle);
|
||||
alsa->aformat.nChannels = channels;
|
||||
alsa->bytes_per_frame = snd_pcm_format_size(format, 1) * channels;
|
||||
if (channels > UINT16_MAX)
|
||||
return FALSE;
|
||||
s = snd_pcm_format_size(format, 1);
|
||||
if ((s < 0) || (s > UINT16_MAX))
|
||||
return FALSE;
|
||||
alsa->aformat.nChannels = (UINT16)channels;
|
||||
alsa->bytes_per_frame = (size_t)s * channels;
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
|
@ -163,10 +163,10 @@ static FREERDP_ADDIN** freerdp_channels_list_dynamic_addins(LPCSTR pszName, LPCS
|
||||
size_t cchInstallPrefix;
|
||||
FREERDP_ADDIN** ppAddins;
|
||||
WIN32_FIND_DATAA FindData;
|
||||
cchAddinPath = strlen(pszAddinPath);
|
||||
cchInstallPrefix = strlen(pszInstallPrefix);
|
||||
cchAddinPath = strnlen(pszAddinPath, sizeof(FREERDP_ADDIN_PATH));
|
||||
cchInstallPrefix = strnlen(pszInstallPrefix, sizeof(FREERDP_INSTALL_PREFIX));
|
||||
pszExtension = PathGetSharedLibraryExtensionA(0);
|
||||
cchPattern = 128 + strlen(pszExtension) + 2;
|
||||
cchPattern = 128 + strnlen(pszExtension, MAX_PATH) + 2;
|
||||
pszPattern = (LPSTR) malloc(cchPattern + 1);
|
||||
|
||||
if (!pszPattern)
|
||||
@ -196,7 +196,7 @@ static FREERDP_ADDIN** freerdp_channels_list_dynamic_addins(LPCSTR pszName, LPCS
|
||||
pszExtension);
|
||||
}
|
||||
|
||||
cchPattern = strlen(pszPattern);
|
||||
cchPattern = strnlen(pszPattern, cchPattern);
|
||||
cchSearchPath = cchInstallPrefix + cchAddinPath + cchPattern + 3;
|
||||
pszSearchPath = (LPSTR) malloc(cchSearchPath + 1);
|
||||
|
||||
|
@ -216,7 +216,7 @@ wStream* cliprdr_packet_format_list_new(const CLIPRDR_FORMAT_LIST* formatList, B
|
||||
if (asciiNames)
|
||||
{
|
||||
if (szFormatName)
|
||||
formatNameLength = strlen(szFormatName);
|
||||
formatNameLength = strnlen(szFormatName, 32);
|
||||
|
||||
if (formatNameLength > 31)
|
||||
formatNameLength = 31;
|
||||
|
@ -545,7 +545,7 @@ static UINT cliprdr_server_receive_temporary_directory(CliprdrServerContext*
|
||||
return ERROR_INVALID_DATA;
|
||||
}
|
||||
|
||||
length = strlen(cliprdr->temporaryDirectory);
|
||||
length = strnlen(cliprdr->temporaryDirectory, 520);
|
||||
|
||||
if (length > 519)
|
||||
length = 519;
|
||||
|
@ -130,7 +130,9 @@ static BOOL printer_write_setting(const char* path, prn_conf_t type, const void*
|
||||
if (!base64)
|
||||
goto fail;
|
||||
|
||||
b64len = strlen(base64);
|
||||
/* base64 char represents 6bit -> 4*(n/3) is the length which is
|
||||
* always smaller than 2*n */
|
||||
b64len = strnlen(base64, 2 * length);
|
||||
rc = WriteFile(file, base64, b64len, &written, NULL);
|
||||
|
||||
if (b64len != written)
|
||||
|
@ -192,7 +192,7 @@ static UINT remdesk_write_channel_header(wStream* s,
|
||||
ChannelNameW[index] = (WCHAR) header->ChannelName[index];
|
||||
}
|
||||
|
||||
ChannelNameLen = (strlen(header->ChannelName) + 1) * 2;
|
||||
ChannelNameLen = (strnlen(header->ChannelName, sizeof(header->ChannelName)) + 1) * 2;
|
||||
Stream_Write_UINT32(s, ChannelNameLen); /* ChannelNameLen (4 bytes) */
|
||||
Stream_Write_UINT32(s, header->DataLength); /* DataLen (4 bytes) */
|
||||
Stream_Write(s, ChannelNameW, ChannelNameLen); /* ChannelName (variable) */
|
||||
|
@ -116,7 +116,7 @@ static UINT remdesk_write_channel_header(wStream* s,
|
||||
ChannelNameW[index] = (WCHAR) header->ChannelName[index];
|
||||
}
|
||||
|
||||
ChannelNameLen = (strlen(header->ChannelName) + 1) * 2;
|
||||
ChannelNameLen = (strnlen(header->ChannelName, sizeof(header->ChannelName)) + 1) * 2;
|
||||
Stream_Write_UINT32(s, ChannelNameLen); /* ChannelNameLen (4 bytes) */
|
||||
Stream_Write_UINT32(s, header->DataLength); /* DataLen (4 bytes) */
|
||||
Stream_Write(s, ChannelNameW, ChannelNameLen); /* ChannelName (variable) */
|
||||
|
@ -825,7 +825,7 @@ UINT DeviceServiceEntry(PDEVICE_SERVICE_ENTRY_POINTS pEntryPoints)
|
||||
char* driver;
|
||||
RDPDR_SERIAL* device;
|
||||
#if defined __linux__ && !defined ANDROID
|
||||
int i, len;
|
||||
size_t i, len;
|
||||
SERIAL_DEVICE* serial;
|
||||
#endif /* __linux__ */
|
||||
UINT error = CHANNEL_RC_OK;
|
||||
|
@ -491,7 +491,7 @@ static BOOL tsmf_sample_playback_video(TSMF_SAMPLE* sample)
|
||||
fwrite("P5\n", 1, 3, fp);
|
||||
sprintf_s(buf, sizeof(buf), "%"PRIu32" %"PRIu32"\n", sample->stream->width,
|
||||
sample->stream->height);
|
||||
fwrite(buf, 1, strlen(buf), fp);
|
||||
fwrite(buf, 1, strnlen(buf, sizeof(buf)), fp);
|
||||
fwrite("255\n", 1, 4, fp);
|
||||
fwrite(sample->data, 1, sample->stream->width * sample->stream->height, fp);
|
||||
fflush(fp);
|
||||
|
@ -532,7 +532,8 @@ static char* xf_window_get_title(rdpSettings* settings)
|
||||
return _strdup(settings->WindowTitle);
|
||||
|
||||
port = (settings->ServerPort != 3389);
|
||||
size = strlen(name) + 16;
|
||||
/* Just assume a window title is never longer than a filename... */
|
||||
size = strnlen(name, MAX_PATH) + 16;
|
||||
windowTitle = calloc(size, sizeof(char));
|
||||
|
||||
if (!windowTitle)
|
||||
|
@ -392,8 +392,8 @@ static void xf_floatbar_event_expose(xfFloatbar* floatbar, XEvent* event)
|
||||
/* draw an border for the floatbar */
|
||||
XSetForeground(display, gc, xf_floatbar_get_color(floatbar, FLOATBAR_COLOR_BORDER));
|
||||
XDrawLines(display, floatbar->handle, gc, border, 5, CoordModeOrigin);
|
||||
/* draw the host name connected to */
|
||||
len = strlen(floatbar->title);
|
||||
/* draw the host name connected to (limit to maximum file name) */
|
||||
len = strnlen(floatbar->title, MAX_PATH);
|
||||
XSetForeground(display, gc, xf_floatbar_get_color(floatbar, FLOATBAR_COLOR_FOREGROUND));
|
||||
XDrawString(display, floatbar->handle, gc, floatbar->width / 2 - len * 2, 15,
|
||||
floatbar->title, len);
|
||||
|
@ -107,7 +107,7 @@ typedef struct _PropMotifWmHints PropMotifWmHints;
|
||||
|
||||
static void xf_SetWindowTitleText(xfContext* xfc, Window window, const char* name)
|
||||
{
|
||||
const size_t i = strlen(name);
|
||||
const size_t i = strnlen(name, MAX_PATH);
|
||||
XStoreName(xfc->display, window, name);
|
||||
Atom wm_Name = xfc->_NET_WM_NAME;
|
||||
Atom utf8Str = xfc->UTF8_STRING;
|
||||
|
@ -210,7 +210,7 @@ BOOL freerdp_client_print_buildconfig(void)
|
||||
static char* print_token(char* text, int start_offset, int* current, int limit,
|
||||
const char delimiter)
|
||||
{
|
||||
int len = (int)strlen(text);
|
||||
size_t len = strlen(text);
|
||||
|
||||
if (*current < start_offset)
|
||||
*current += printf("%*c", (start_offset - *current), ' ');
|
||||
|
@ -246,7 +246,7 @@ static int freerdp_client_old_command_line_pre_filter(void* context, int index,
|
||||
return -1;
|
||||
}
|
||||
|
||||
if (_stricmp(&(argv[index])[strlen(argv[index]) - 4], ".rdp") == 0)
|
||||
if (_stricmp(&(argv[index])[strnlen(argv[index], 9) - 4], ".rdp") == 0)
|
||||
{
|
||||
return -1;
|
||||
}
|
||||
|
@ -241,12 +241,16 @@ PVIRTUALCHANNELENTRY freerdp_load_dynamic_channel_addin_entry(LPCSTR pszName,
|
||||
const size_t cchBaseFileName = sizeof(FREERDP_SHARED_LIBRARY_PREFIX) + 32;
|
||||
LPCSTR pszExtension;
|
||||
LPCSTR pszPrefix = FREERDP_SHARED_LIBRARY_PREFIX;
|
||||
const size_t nameLen = strnlen(pszName, MAX_PATH);
|
||||
const size_t subsystemLen = strnlen(pszSubsystem, MAX_PATH);
|
||||
const size_t typeLen = strlen(pszType);
|
||||
size_t extensionLen;
|
||||
pszExtension = PathGetSharedLibraryExtensionA(0);
|
||||
extensionLen = strnlen(pszExtension, MAX_PATH);
|
||||
|
||||
if (pszName && pszSubsystem && pszType)
|
||||
{
|
||||
const size_t cchFileName = cchBaseFileName + strlen(pszName) + strlen(pszSubsystem) + strlen(
|
||||
pszType) + strlen(pszExtension);
|
||||
const size_t cchFileName = cchBaseFileName + nameLen + subsystemLen + typeLen + extensionLen;
|
||||
pszFileName = (LPSTR) malloc(cchFileName);
|
||||
|
||||
if (!pszFileName)
|
||||
@ -257,8 +261,7 @@ PVIRTUALCHANNELENTRY freerdp_load_dynamic_channel_addin_entry(LPCSTR pszName,
|
||||
}
|
||||
else if (pszName && pszSubsystem)
|
||||
{
|
||||
const size_t cchFileName = cchBaseFileName + strlen(pszName) + strlen(pszSubsystem) + strlen(
|
||||
pszExtension);
|
||||
const size_t cchFileName = cchBaseFileName + nameLen + subsystemLen + extensionLen;
|
||||
pszFileName = (LPSTR) malloc(cchFileName);
|
||||
|
||||
if (!pszFileName)
|
||||
@ -269,7 +272,7 @@ PVIRTUALCHANNELENTRY freerdp_load_dynamic_channel_addin_entry(LPCSTR pszName,
|
||||
}
|
||||
else if (pszName)
|
||||
{
|
||||
const size_t cchFileName = cchBaseFileName + strlen(pszName) + strlen(pszExtension);
|
||||
const size_t cchFileName = cchBaseFileName + nameLen + extensionLen;
|
||||
pszFileName = (LPSTR) malloc(cchFileName);
|
||||
|
||||
if (!pszFileName)
|
||||
@ -288,7 +291,7 @@ PVIRTUALCHANNELENTRY freerdp_load_dynamic_channel_addin_entry(LPCSTR pszName,
|
||||
LPSTR pszEntryName;
|
||||
size_t cchEntryName;
|
||||
/* subsystem add-in */
|
||||
cchEntryName = 64 + strlen(pszName);
|
||||
cchEntryName = 64 + nameLen;
|
||||
pszEntryName = (LPSTR) malloc(cchEntryName + 1);
|
||||
|
||||
if (!pszEntryName)
|
||||
|
@ -98,7 +98,7 @@ int freerdp_addin_set_argument_value(ADDIN_ARGV* args, char* option, char* value
|
||||
int i;
|
||||
char* p;
|
||||
char* str;
|
||||
int length;
|
||||
size_t length;
|
||||
char** new_argv;
|
||||
length = strlen(option) + strlen(value) + 1;
|
||||
str = (char*) malloc(length + 1);
|
||||
@ -142,7 +142,7 @@ int freerdp_addin_replace_argument_value(ADDIN_ARGV* args, char* previous, char*
|
||||
{
|
||||
int i;
|
||||
char* str;
|
||||
int length;
|
||||
size_t length;
|
||||
char** new_argv;
|
||||
length = strlen(option) + strlen(value) + 1;
|
||||
str = (char*) malloc(length + 1);
|
||||
|
@ -261,12 +261,12 @@ UINT freerdp_channels_attach(freerdp* instance)
|
||||
UINT error = CHANNEL_RC_OK;
|
||||
int index;
|
||||
char* hostname;
|
||||
int hostnameLength;
|
||||
size_t hostnameLength;
|
||||
rdpChannels* channels;
|
||||
CHANNEL_CLIENT_DATA* pChannelClientData;
|
||||
channels = instance->context->channels;
|
||||
hostname = instance->settings->ServerHostname;
|
||||
hostnameLength = (int) strlen(hostname);
|
||||
hostnameLength = strlen(hostname);
|
||||
|
||||
for (index = 0; index < channels->clientDataCount; index++)
|
||||
{
|
||||
@ -304,12 +304,12 @@ UINT freerdp_channels_detach(freerdp* instance)
|
||||
UINT error = CHANNEL_RC_OK;
|
||||
int index;
|
||||
char* hostname;
|
||||
int hostnameLength;
|
||||
size_t hostnameLength;
|
||||
rdpChannels* channels;
|
||||
CHANNEL_CLIENT_DATA* pChannelClientData;
|
||||
channels = instance->context->channels;
|
||||
hostname = instance->settings->ServerHostname;
|
||||
hostnameLength = (int) strlen(hostname);
|
||||
hostnameLength = strlen(hostname);
|
||||
|
||||
for (index = 0; index < channels->clientDataCount; index++)
|
||||
{
|
||||
|
@ -91,7 +91,7 @@ static char* string_strnstr(char* str1, const char* str2, size_t slen)
|
||||
|
||||
if ((c = *str2++) != '\0')
|
||||
{
|
||||
len = strlen(str2);
|
||||
len = strnlen(str2, slen + 1);
|
||||
|
||||
do
|
||||
{
|
||||
|
@ -239,12 +239,12 @@ static BOOL rdg_write_packet(rdpRdg* rdg, wStream* sPacket)
|
||||
wStream* sChunk;
|
||||
char chunkSize[11];
|
||||
sprintf_s(chunkSize, sizeof(chunkSize), "%"PRIXz"\r\n", Stream_Length(sPacket));
|
||||
sChunk = Stream_New(NULL, strlen(chunkSize) + Stream_Length(sPacket) + 2);
|
||||
sChunk = Stream_New(NULL, strnlen(chunkSize, sizeof(chunkSize)) + Stream_Length(sPacket) + 2);
|
||||
|
||||
if (!sChunk)
|
||||
return FALSE;
|
||||
|
||||
Stream_Write(sChunk, chunkSize, strlen(chunkSize));
|
||||
Stream_Write(sChunk, chunkSize, strnlen(chunkSize, sizeof(chunkSize)));
|
||||
Stream_Write(sChunk, Stream_Buffer(sPacket), Stream_Length(sPacket));
|
||||
Stream_Write(sChunk, "\r\n", 2);
|
||||
Stream_SealLength(sChunk);
|
||||
@ -1217,12 +1217,12 @@ static int rdg_write_data_packet(rdpRdg* rdg, const BYTE* buf, int isize)
|
||||
return 0;
|
||||
|
||||
sprintf_s(chunkSize, sizeof(chunkSize), "%"PRIxz"\r\n", packetSize);
|
||||
sChunk = Stream_New(NULL, strlen(chunkSize) + packetSize + 2);
|
||||
sChunk = Stream_New(NULL, strnlen(chunkSize, sizeof(chunkSize)) + packetSize + 2);
|
||||
|
||||
if (!sChunk)
|
||||
return -1;
|
||||
|
||||
Stream_Write(sChunk, chunkSize, strlen(chunkSize));
|
||||
Stream_Write(sChunk, chunkSize, strnlen(chunkSize, sizeof(chunkSize)));
|
||||
Stream_Write_UINT16(sChunk, PKT_TYPE_DATA); /* Type */
|
||||
Stream_Write_UINT16(sChunk, 0); /* Reserved */
|
||||
Stream_Write_UINT32(sChunk, (UINT32)packetSize); /* Packet length */
|
||||
|
@ -32,8 +32,8 @@ typedef struct rdp_mcs rdpMcs;
|
||||
|
||||
#include <winpr/stream.h>
|
||||
|
||||
#define MCS_BASE_CHANNEL_ID 1001
|
||||
#define MCS_GLOBAL_CHANNEL_ID 1003
|
||||
#define MCS_BASE_CHANNEL_ID 1001
|
||||
#define MCS_GLOBAL_CHANNEL_ID 1003
|
||||
|
||||
enum MCS_Result
|
||||
{
|
||||
@ -149,19 +149,18 @@ struct rdp_mcs
|
||||
rdpMcsChannel* channels;
|
||||
};
|
||||
|
||||
#define MCS_SEND_DATA_HEADER_MAX_LENGTH 8
|
||||
#define MCS_SEND_DATA_HEADER_MAX_LENGTH 8
|
||||
|
||||
#define MCS_TYPE_CONNECT_INITIAL 0x65
|
||||
#define MCS_TYPE_CONNECT_RESPONSE 0x66
|
||||
#define MCS_TYPE_CONNECT_INITIAL 0x65
|
||||
#define MCS_TYPE_CONNECT_RESPONSE 0x66
|
||||
|
||||
FREERDP_LOCAL BOOL mcs_merge_domain_parameters(DomainParameters*
|
||||
targetParameters, DomainParameters* minimumParameters,
|
||||
DomainParameters* maximumParameters, DomainParameters* pOutParameters);
|
||||
FREERDP_LOCAL BOOL mcs_merge_domain_parameters(DomainParameters* targetParameters,
|
||||
DomainParameters* minimumParameters,
|
||||
DomainParameters* maximumParameters,
|
||||
DomainParameters* pOutParameters);
|
||||
|
||||
FREERDP_LOCAL BOOL mcs_write_connect_initial(wStream* s, rdpMcs* mcs,
|
||||
wStream* userData);
|
||||
FREERDP_LOCAL BOOL mcs_write_connect_response(wStream* s, rdpMcs* mcs,
|
||||
wStream* userData);
|
||||
FREERDP_LOCAL BOOL mcs_write_connect_initial(wStream* s, rdpMcs* mcs, wStream* userData);
|
||||
FREERDP_LOCAL BOOL mcs_write_connect_response(wStream* s, rdpMcs* mcs, wStream* userData);
|
||||
|
||||
FREERDP_LOCAL BOOL mcs_recv_connect_initial(rdpMcs* mcs, wStream* s);
|
||||
FREERDP_LOCAL BOOL mcs_send_connect_initial(rdpMcs* mcs);
|
||||
@ -173,19 +172,16 @@ FREERDP_LOCAL BOOL mcs_recv_attach_user_request(rdpMcs* mcs, wStream* s);
|
||||
FREERDP_LOCAL BOOL mcs_send_attach_user_request(rdpMcs* mcs);
|
||||
FREERDP_LOCAL BOOL mcs_recv_attach_user_confirm(rdpMcs* mcs, wStream* s);
|
||||
FREERDP_LOCAL BOOL mcs_send_attach_user_confirm(rdpMcs* mcs);
|
||||
FREERDP_LOCAL BOOL mcs_recv_channel_join_request(rdpMcs* mcs, wStream* s,
|
||||
UINT16* channelId);
|
||||
FREERDP_LOCAL BOOL mcs_recv_channel_join_request(rdpMcs* mcs, wStream* s, UINT16* channelId);
|
||||
FREERDP_LOCAL BOOL mcs_send_channel_join_request(rdpMcs* mcs, UINT16 channelId);
|
||||
FREERDP_LOCAL BOOL mcs_recv_channel_join_confirm(rdpMcs* mcs, wStream* s,
|
||||
UINT16* channelId);
|
||||
FREERDP_LOCAL BOOL mcs_recv_channel_join_confirm(rdpMcs* mcs, wStream* s, UINT16* channelId);
|
||||
FREERDP_LOCAL BOOL mcs_send_channel_join_confirm(rdpMcs* mcs, UINT16 channelId);
|
||||
FREERDP_LOCAL BOOL mcs_recv_disconnect_provider_ultimatum(rdpMcs* mcs,
|
||||
wStream* s, int* reason);
|
||||
FREERDP_LOCAL BOOL mcs_recv_disconnect_provider_ultimatum(rdpMcs* mcs, wStream* s, int* reason);
|
||||
FREERDP_LOCAL BOOL mcs_send_disconnect_provider_ultimatum(rdpMcs* mcs);
|
||||
FREERDP_LOCAL BOOL mcs_read_domain_mcspdu_header(wStream* s,
|
||||
enum DomainMCSPDU* domainMCSPDU, UINT16* length);
|
||||
FREERDP_LOCAL void mcs_write_domain_mcspdu_header(wStream* s,
|
||||
enum DomainMCSPDU domainMCSPDU, UINT16 length, BYTE options);
|
||||
FREERDP_LOCAL BOOL mcs_read_domain_mcspdu_header(wStream* s, enum DomainMCSPDU* domainMCSPDU,
|
||||
UINT16* length);
|
||||
FREERDP_LOCAL void mcs_write_domain_mcspdu_header(wStream* s, enum DomainMCSPDU domainMCSPDU,
|
||||
UINT16 length, BYTE options);
|
||||
|
||||
FREERDP_LOCAL BOOL mcs_client_begin(rdpMcs* mcs);
|
||||
|
||||
|
@ -711,11 +711,12 @@ static BOOL nego_read_request_token_or_cookie(rdpNego* nego, wStream* s)
|
||||
size_t pos, len;
|
||||
BOOL result = FALSE;
|
||||
BOOL isToken = FALSE;
|
||||
size_t remain = Stream_GetRemainingLength(s);
|
||||
str = Stream_Pointer(s);
|
||||
pos = Stream_GetPosition(s);
|
||||
|
||||
/* minimum length for token is 15 */
|
||||
if (Stream_GetRemainingLength(s) < 15)
|
||||
if (remain < 15)
|
||||
return TRUE;
|
||||
|
||||
if (memcmp(Stream_Pointer(s), "Cookie: mstshash=", 17) != 0)
|
||||
@ -725,13 +726,13 @@ static BOOL nego_read_request_token_or_cookie(rdpNego* nego, wStream* s)
|
||||
else
|
||||
{
|
||||
/* not a token, minimum length for cookie is 19 */
|
||||
if (Stream_GetRemainingLength(s) < 19)
|
||||
if (remain < 19)
|
||||
return TRUE;
|
||||
|
||||
Stream_Seek(s, 17);
|
||||
}
|
||||
|
||||
while (Stream_GetRemainingLength(s) >= 2)
|
||||
while ((remain = Stream_GetRemainingLength(s)) >= 2)
|
||||
{
|
||||
Stream_Read_UINT16(s, crlf);
|
||||
|
||||
@ -745,9 +746,10 @@ static BOOL nego_read_request_token_or_cookie(rdpNego* nego, wStream* s)
|
||||
{
|
||||
Stream_Rewind(s, 2);
|
||||
len = Stream_GetPosition(s) - pos;
|
||||
remain = Stream_GetRemainingLength(s);
|
||||
Stream_Write_UINT16(s, 0);
|
||||
|
||||
if (strlen((char*)str) == len)
|
||||
if (strnlen((char*)str, remain) == len)
|
||||
{
|
||||
if (isToken)
|
||||
result = nego_set_routing_token(nego, str, len);
|
||||
|
@ -48,7 +48,7 @@ static HANDLE freerdp_peer_virtual_channel_open(freerdp_peer* client, const char
|
||||
if (flags & WTS_CHANNEL_OPTION_DYNAMIC)
|
||||
return NULL; /* not yet supported */
|
||||
|
||||
length = strlen(name);
|
||||
length = strnlen(name, 9);
|
||||
|
||||
if (length > 8)
|
||||
return NULL; /* SVC maximum name length is 8 */
|
||||
|
@ -406,7 +406,7 @@ static BOOL http_proxy_connect(BIO* bufferedBio, const char* hostname, UINT16 po
|
||||
Stream_Write(s, " HTTP/1.1" CRLF "Host: ", 17);
|
||||
Stream_Write(s, hostname, strlen(hostname));
|
||||
Stream_Write_UINT8(s, ':');
|
||||
Stream_Write(s, port_str, strlen(port_str));
|
||||
Stream_Write(s, port_str, strnlen(port_str, sizeof (port_str)));
|
||||
Stream_Write(s, CRLF CRLF, 4);
|
||||
status = BIO_write(bufferedBio, Stream_Buffer(s), Stream_GetPosition(s));
|
||||
|
||||
@ -468,7 +468,7 @@ static BOOL http_proxy_connect(BIO* bufferedBio, const char* hostname, UINT16 po
|
||||
*eol = '\0';
|
||||
WLog_INFO(TAG, "HTTP Proxy: %s", recv_buf);
|
||||
|
||||
if (strlen(recv_buf) < 12)
|
||||
if (strnlen(recv_buf, sizeof(recv_buf)) < 12)
|
||||
{
|
||||
return FALSE;
|
||||
}
|
||||
|
@ -352,11 +352,11 @@ static void wts_write_drdynvc_header(wStream* s, BYTE Cmd, UINT32 ChannelId)
|
||||
static BOOL wts_write_drdynvc_create_request(wStream* s, UINT32 ChannelId,
|
||||
const char* ChannelName)
|
||||
{
|
||||
UINT32 len;
|
||||
size_t len;
|
||||
wts_write_drdynvc_header(s, CREATE_REQUEST_PDU, ChannelId);
|
||||
len = strlen(ChannelName) + 1;
|
||||
len = strnlen(ChannelName, CHANNEL_NAME_LEN) + 1;
|
||||
|
||||
if (!Stream_EnsureRemainingCapacity(s, (int) len))
|
||||
if (!Stream_EnsureRemainingCapacity(s, len))
|
||||
return FALSE;
|
||||
|
||||
Stream_Write(s, ChannelName, len);
|
||||
@ -524,7 +524,7 @@ static rdpMcsChannel* wts_get_joined_channel_by_name(rdpMcs* mcs,
|
||||
{
|
||||
UINT32 index;
|
||||
|
||||
if (!mcs || !channel_name || !strlen(channel_name))
|
||||
if (!mcs || !channel_name || !strnlen(channel_name, CHANNEL_NAME_LEN))
|
||||
return NULL;
|
||||
|
||||
for (index = 0; index < mcs->channelCount; index++)
|
||||
@ -532,7 +532,7 @@ static rdpMcsChannel* wts_get_joined_channel_by_name(rdpMcs* mcs,
|
||||
if (mcs->channels[index].joined)
|
||||
{
|
||||
if (_strnicmp(mcs->channels[index].Name, channel_name,
|
||||
strlen(channel_name)) == 0)
|
||||
strnlen(channel_name, CHANNEL_NAME_LEN)) == 0)
|
||||
return &mcs->channels[index];
|
||||
}
|
||||
}
|
||||
@ -990,7 +990,7 @@ BOOL WINAPI FreeRDP_WTSWaitSystemEvent(HANDLE hServer, DWORD EventMask,
|
||||
HANDLE WINAPI FreeRDP_WTSVirtualChannelOpen(HANDLE hServer, DWORD SessionId,
|
||||
LPSTR pVirtualName)
|
||||
{
|
||||
int length;
|
||||
size_t length;
|
||||
UINT32 index;
|
||||
rdpMcs* mcs;
|
||||
BOOL joined = FALSE;
|
||||
|
@ -184,7 +184,7 @@ static int testSuccess(int port)
|
||||
NULL
|
||||
};
|
||||
char* commandLine = NULL;
|
||||
int commandLineLen;
|
||||
size_t commandLineLen;
|
||||
int argc = 4;
|
||||
char* path = NULL;
|
||||
char* wpath = NULL;
|
||||
|
@ -705,14 +705,14 @@ rdpCertificateData* certificate_data_new(const char* hostname, UINT16 port, cons
|
||||
certdata->hostname = _strdup(hostname);
|
||||
|
||||
if (subject)
|
||||
certdata->subject = crypto_base64_encode((BYTE*)subject, strlen(subject));
|
||||
certdata->subject = crypto_base64_encode((const BYTE*)subject, strlen(subject));
|
||||
else
|
||||
certdata->subject = crypto_base64_encode((BYTE*)"", 0);
|
||||
certdata->subject = crypto_base64_encode((const BYTE*)"", 0);
|
||||
|
||||
if (issuer)
|
||||
certdata->issuer = crypto_base64_encode((BYTE*)issuer, strlen(issuer));
|
||||
certdata->issuer = crypto_base64_encode((const BYTE*)issuer, strlen(issuer));
|
||||
else
|
||||
certdata->issuer = crypto_base64_encode((BYTE*)"", 0);
|
||||
certdata->issuer = crypto_base64_encode((const BYTE*)"", 0);
|
||||
|
||||
certdata->fingerprint = _strdup(fingerprint);
|
||||
|
||||
|
@ -741,7 +741,7 @@ char** crypto_cert_get_dns_names(X509* x509, int* count, int** lengths)
|
||||
for (i = 0; i < list.count; i ++)
|
||||
{
|
||||
result[i] = list.strings[i];
|
||||
(*lengths)[i] = strlen(result[i]);
|
||||
(*lengths)[i] = strnlen(result[i], sizeof(*result));
|
||||
}
|
||||
|
||||
string_list_free(&list);
|
||||
|
@ -26,7 +26,7 @@ struct Encode64test
|
||||
const char* output;
|
||||
};
|
||||
|
||||
struct Encode64test encodeTests[] =
|
||||
static const struct Encode64test encodeTests[] =
|
||||
{
|
||||
{"\x00", 1, "AA=="},
|
||||
{"\x00\x00", 2, "AAA="},
|
||||
@ -39,7 +39,6 @@ struct Encode64test encodeTests[] =
|
||||
{NULL, -1, NULL}, /* /!\ last one /!\ */
|
||||
};
|
||||
|
||||
|
||||
int TestBase64(int argc, char* argv[])
|
||||
{
|
||||
int i, testNb = 0;
|
||||
|
@ -25,13 +25,13 @@
|
||||
|
||||
static int prepare(const char* currentFileV2, const char* legacyFileV2, const char* legacyFile)
|
||||
{
|
||||
char* legacy[] =
|
||||
const char* legacy[] =
|
||||
{
|
||||
"someurl ff:11:22:dd\r\n",
|
||||
"otherurl aa:bb:cc:dd\r",
|
||||
"legacyurl aa:bb:cc:dd\n"
|
||||
};
|
||||
char* hosts[] =
|
||||
const char* hosts[] =
|
||||
{
|
||||
"#somecomment\r\n"
|
||||
"someurl 3389 ff:11:22:dd subject issuer\r\n"
|
||||
@ -51,7 +51,7 @@ static int prepare(const char* currentFileV2, const char* legacyFileV2, const ch
|
||||
if (!fl)
|
||||
goto finish;
|
||||
|
||||
for (i = 0; i < sizeof(hosts) / sizeof(hosts[0]); i++)
|
||||
for (i = 0; i < ARRAYSIZE(hosts); i++)
|
||||
{
|
||||
if (fwrite(hosts[i], strlen(hosts[i]), 1, fl) != 1 ||
|
||||
fwrite(hosts[i], strlen(hosts[i]), 1, fc) != 1)
|
||||
@ -67,7 +67,7 @@ static int prepare(const char* currentFileV2, const char* legacyFileV2, const ch
|
||||
if (!fl)
|
||||
goto finish;
|
||||
|
||||
for (i = 0; i < sizeof(legacy) / sizeof(legacy[0]); i++)
|
||||
for (i = 0; i < ARRAYSIZE(legacy); i++)
|
||||
{
|
||||
if (fwrite(legacy[i], strlen(legacy[i]), 1, fl) != 1)
|
||||
goto finish;
|
||||
|
@ -31,13 +31,13 @@ char* certificate_path()
|
||||
#else
|
||||
static const char dirsep = '/';
|
||||
#endif
|
||||
static const char* filename = "Test_x509_cert_info.pem";
|
||||
static const char filename[] = "Test_x509_cert_info.pem";
|
||||
const char* file = __FILE__;
|
||||
const char* last_dirsep = strrchr(file, dirsep);
|
||||
|
||||
if (last_dirsep)
|
||||
{
|
||||
char* result = malloc(last_dirsep - file + 1 + strlen(filename) + 1);
|
||||
char* result = malloc(last_dirsep - file + 1 + strnlen(filename, sizeof(filename)) + 1);
|
||||
strncpy(result, file, (last_dirsep - file + 1));
|
||||
strcpy(result + (last_dirsep - file + 1), filename);
|
||||
return result;
|
||||
|
@ -213,7 +213,7 @@ static int bio_rdp_tls_read(BIO* bio, char* buf, int size)
|
||||
|
||||
static int bio_rdp_tls_puts(BIO* bio, const char* str)
|
||||
{
|
||||
int size;
|
||||
size_t size;
|
||||
int status;
|
||||
|
||||
if (!str)
|
||||
|
@ -95,11 +95,11 @@
|
||||
|
||||
static char* gdi_convert_postfix_to_infix(const char* postfix)
|
||||
{
|
||||
int i;
|
||||
int length;
|
||||
size_t i;
|
||||
size_t length;
|
||||
BOOL unary;
|
||||
wStack* stack;
|
||||
int al, bl, cl, dl;
|
||||
size_t al, bl, cl, dl;
|
||||
char* a, *b, *c, *d;
|
||||
bl = cl = dl = 0;
|
||||
stack = Stack_New(FALSE);
|
||||
|
@ -435,7 +435,7 @@ int freerdp_keyboard_load_map_from_xkbfile(void* display, DWORD x11_keycode_to_r
|
||||
found = FALSE;
|
||||
CopyMemory(xkb_keyname, xkb->names->keys[i].name, 4);
|
||||
|
||||
if (strlen(xkb_keyname) < 1)
|
||||
if (strnlen(xkb_keyname, sizeof(xkb_keyname)) < 1)
|
||||
continue;
|
||||
|
||||
for (j = 0; j < ARRAYSIZE(XKB_KEY_NAME_SCANCODE_TABLE); j++)
|
||||
|
@ -107,8 +107,8 @@ static int rdtk_font_draw_glyph(rdtkSurface* surface, int nXDst, int nYDst, rdtk
|
||||
int rdtk_font_draw_text(rdtkSurface* surface, int nXDst, int nYDst, rdtkFont* font,
|
||||
const char* text)
|
||||
{
|
||||
int index;
|
||||
int length;
|
||||
size_t index;
|
||||
size_t length;
|
||||
rdtkGlyph* glyph;
|
||||
font = surface->engine->font;
|
||||
length = strlen(text);
|
||||
@ -125,8 +125,8 @@ int rdtk_font_draw_text(rdtkSurface* surface, int nXDst, int nYDst, rdtkFont* fo
|
||||
|
||||
int rdtk_font_text_draw_size(rdtkFont* font, int* width, int* height, const char* text)
|
||||
{
|
||||
int index;
|
||||
int length;
|
||||
size_t index;
|
||||
size_t length;
|
||||
int glyphIndex;
|
||||
rdtkGlyph* glyph;
|
||||
*width = 0;
|
||||
@ -201,7 +201,7 @@ static char* rdtk_font_load_descriptor_file(const char* filename, int* pSize)
|
||||
|
||||
static int rdtk_font_convert_descriptor_code_to_utf8(const char* str, BYTE* utf8)
|
||||
{
|
||||
int len = strlen(str);
|
||||
size_t len = strlen(str);
|
||||
*((UINT32*) utf8) = 0;
|
||||
|
||||
if (len < 1)
|
||||
@ -587,7 +587,7 @@ static int rdtk_font_load_descriptor(rdtkFont* font, const char* filename)
|
||||
rdtkFont* rdtk_font_new(rdtkEngine* engine, const char* path, const char* file)
|
||||
{
|
||||
int status;
|
||||
int length;
|
||||
size_t length;
|
||||
rdtkFont* font = NULL;
|
||||
char* fontBaseFile = NULL;
|
||||
char* fontImageFile = NULL;
|
||||
|
@ -61,7 +61,7 @@ static BOOL pf_server_parse_target_from_routing_token(rdpContext* context,
|
||||
#define ROUTING_TOKEN_PREFIX "Cookie: msts="
|
||||
char* colon;
|
||||
size_t len;
|
||||
const size_t prefix_len = strlen(ROUTING_TOKEN_PREFIX);
|
||||
const size_t prefix_len = strnlen(ROUTING_TOKEN_PREFIX, sizeof(ROUTING_TOKEN_PREFIX));
|
||||
DWORD routing_token_length;
|
||||
const char* routing_token = freerdp_nego_get_routing_token(context, &routing_token_length);
|
||||
|
||||
|
@ -69,7 +69,7 @@ static COMMAND_LINE_ARGUMENT_A shadow_args[] =
|
||||
static int shadow_server_print_command_line_help(int argc, char** argv)
|
||||
{
|
||||
char* str;
|
||||
int length;
|
||||
size_t length;
|
||||
COMMAND_LINE_ARGUMENT_A* arg;
|
||||
|
||||
if (argc < 1)
|
||||
@ -98,7 +98,7 @@ static int shadow_server_print_command_line_help(int argc, char** argv)
|
||||
|
||||
if (arg->Format)
|
||||
{
|
||||
length = (int)(strlen(arg->Name) + strlen(arg->Format) + 2);
|
||||
length = (strlen(arg->Name) + strlen(arg->Format) + 2);
|
||||
str = (char*) malloc(length + 1);
|
||||
|
||||
if (!str)
|
||||
@ -117,7 +117,7 @@ static int shadow_server_print_command_line_help(int argc, char** argv)
|
||||
}
|
||||
else if (arg->Flags & COMMAND_LINE_VALUE_BOOL)
|
||||
{
|
||||
length = (int) strlen(arg->Name) + 32;
|
||||
length = strlen(arg->Name) + 32;
|
||||
str = (char*) malloc(length + 1);
|
||||
|
||||
if (!str)
|
||||
|
@ -382,7 +382,7 @@ static void* clipboard_synthesize_html_format(wClipboard* clipboard, UINT32 form
|
||||
body = strstr(pSrcData, "<BODY");
|
||||
|
||||
/* StartHTML */
|
||||
sprintf_s(num, sizeof(num), "%010"PRIuz"", strlen(pDstData));
|
||||
sprintf_s(num, sizeof(num), "%010"PRIuz"", strnlen(pDstData, SrcSize + 200));
|
||||
CopyMemory(&pDstData[23], num, 10);
|
||||
|
||||
if (!body)
|
||||
@ -390,11 +390,11 @@ static void* clipboard_synthesize_html_format(wClipboard* clipboard, UINT32 form
|
||||
|
||||
strcat(pDstData, "<!--StartFragment-->");
|
||||
/* StartFragment */
|
||||
sprintf_s(num, sizeof(num), "%010"PRIuz"", strlen(pDstData));
|
||||
sprintf_s(num, sizeof(num), "%010"PRIuz"", strnlen(pDstData, SrcSize + 200));
|
||||
CopyMemory(&pDstData[69], num, 10);
|
||||
strcat(pDstData, pSrcData);
|
||||
/* EndFragment */
|
||||
sprintf_s(num, sizeof(num), "%010"PRIuz"", strlen(pDstData));
|
||||
sprintf_s(num, sizeof(num), "%010"PRIuz"", strnlen(pDstData, SrcSize + 200));
|
||||
CopyMemory(&pDstData[93], num, 10);
|
||||
strcat(pDstData, "<!--EndFragment-->");
|
||||
|
||||
@ -402,7 +402,7 @@ static void* clipboard_synthesize_html_format(wClipboard* clipboard, UINT32 form
|
||||
strcat(pDstData, "</BODY></HTML>");
|
||||
|
||||
/* EndHTML */
|
||||
sprintf_s(num, sizeof(num), "%010"PRIuz"", strlen(pDstData));
|
||||
sprintf_s(num, sizeof(num), "%010"PRIuz"", strnlen(pDstData, SrcSize + 200));
|
||||
CopyMemory(&pDstData[43], num, 10);
|
||||
*pSize = (UINT32) strlen(pDstData) + 1;
|
||||
free(pSrcData);
|
||||
|
@ -47,7 +47,7 @@ int TestClipboardFormats(int argc, char* argv[])
|
||||
return -1;
|
||||
}
|
||||
|
||||
SrcSize = (UINT32)(strlen(pSrcData) + 1);
|
||||
SrcSize = (UINT32)(strnlen(pSrcData, UINT32_MAX - 1) + 1);
|
||||
bSuccess = ClipboardSetData(clipboard, utf8StringFormatId, pSrcData,
|
||||
SrcSize);
|
||||
fprintf(stderr, "ClipboardSetData: %"PRId32"\n", bSuccess);
|
||||
|
@ -217,13 +217,13 @@ WCHAR* wcstok_s(WCHAR* strToken, const WCHAR* strDelimit, WCHAR** context)
|
||||
|
||||
LPSTR CharUpperA(LPSTR lpsz)
|
||||
{
|
||||
int i;
|
||||
int length;
|
||||
size_t i;
|
||||
size_t length;
|
||||
|
||||
if (!lpsz)
|
||||
return NULL;
|
||||
|
||||
length = (int) strlen(lpsz);
|
||||
length = strlen(lpsz);
|
||||
|
||||
if (length < 1)
|
||||
return (LPSTR) NULL;
|
||||
@ -287,13 +287,13 @@ DWORD CharUpperBuffW(LPWSTR lpsz, DWORD cchLength)
|
||||
|
||||
LPSTR CharLowerA(LPSTR lpsz)
|
||||
{
|
||||
int i;
|
||||
int length;
|
||||
size_t i;
|
||||
size_t length;
|
||||
|
||||
if (!lpsz)
|
||||
return (LPSTR) NULL;
|
||||
|
||||
length = (int) strlen(lpsz);
|
||||
length = strlen(lpsz);
|
||||
|
||||
if (length < 1)
|
||||
return (LPSTR) NULL;
|
||||
|
@ -86,14 +86,14 @@ static BYTE ru_Administrator_lower[] =
|
||||
static BYTE ru_Administrator_upper[] =
|
||||
"\xd0\x90\xd0\x94\xd0\x9c\xd0\x98\xd0\x9d\xd0\x98\xd0\xa1\xd0\xa2\xd0\xa0\xd0\x90\xd0\xa2\xd0\x9e\xd0\xa0\x00";
|
||||
|
||||
void string_hexdump(BYTE* data, int length)
|
||||
static void string_hexdump(const BYTE* data, size_t length)
|
||||
{
|
||||
BYTE* p = data;
|
||||
int i, line, offset = 0;
|
||||
const BYTE* p = data;
|
||||
size_t i, line, offset = 0;
|
||||
|
||||
while (offset < length)
|
||||
{
|
||||
printf("%04x ", offset);
|
||||
printf("%04"PRIxz" ", offset);
|
||||
|
||||
line = length - offset;
|
||||
|
||||
@ -116,11 +116,11 @@ void string_hexdump(BYTE* data, int length)
|
||||
}
|
||||
}
|
||||
|
||||
int convert_utf8_to_utf16(BYTE* lpMultiByteStr, BYTE* expected_lpWideCharStr, int expected_cchWideChar)
|
||||
static int convert_utf8_to_utf16(BYTE* lpMultiByteStr, BYTE* expected_lpWideCharStr, int expected_cchWideChar)
|
||||
{
|
||||
int rc = -1;
|
||||
int length;
|
||||
int cbMultiByte;
|
||||
size_t cbMultiByte;
|
||||
int cchWideChar;
|
||||
LPWSTR lpWideCharStr = NULL;
|
||||
|
||||
@ -139,7 +139,7 @@ int convert_utf8_to_utf16(BYTE* lpMultiByteStr, BYTE* expected_lpWideCharStr, in
|
||||
goto fail;
|
||||
}
|
||||
|
||||
lpWideCharStr = (LPWSTR) calloc(cchWideChar, sizeof(WCHAR));
|
||||
lpWideCharStr = (LPWSTR) calloc((size_t)cchWideChar, sizeof(WCHAR));
|
||||
if (!lpWideCharStr)
|
||||
{
|
||||
printf("MultiByteToWideChar: unable to allocate memory for test\n");
|
||||
@ -191,7 +191,7 @@ fail:
|
||||
return rc;
|
||||
}
|
||||
|
||||
int convert_utf16_to_utf8(BYTE* lpWideCharStr, BYTE* expected_lpMultiByteStr, int expected_cbMultiByte)
|
||||
static int convert_utf16_to_utf8(BYTE* lpWideCharStr, BYTE* expected_lpMultiByteStr, int expected_cbMultiByte)
|
||||
{
|
||||
int rc = -1;
|
||||
int length;
|
||||
@ -266,7 +266,7 @@ fail:
|
||||
return rc;
|
||||
}
|
||||
|
||||
BOOL test_unicode_uppercasing(BYTE* lower, BYTE* upper)
|
||||
static BOOL test_unicode_uppercasing(BYTE* lower, BYTE* upper)
|
||||
{
|
||||
WCHAR* lowerW = NULL;
|
||||
int lowerLength;
|
||||
@ -296,12 +296,12 @@ BOOL test_unicode_uppercasing(BYTE* lower, BYTE* upper)
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
BOOL test_ConvertFromUnicode_wrapper()
|
||||
static BOOL test_ConvertFromUnicode_wrapper(void)
|
||||
{
|
||||
BYTE src1[] = "\x52\x00\x49\x00\x43\x00\x48\x00\x20\x00\x54\x00\x45\x00\x58\x00\x54\x00\x20\x00\x46\x00\x4f\x00\x52\x00\x4d\x00\x41\x00\x54\x00\x40\x00\x40\x00\x40\x00";
|
||||
BYTE src2[] = "\x52\x00\x49\x00\x43\x00\x48\x00\x20\x00\x54\x00\x45\x00\x58\x00\x54\x00\x20\x00\x46\x00\x4f\x00\x52\x00\x4d\x00\x41\x00\x54\x00\x00\x00";
|
||||
const BYTE src1[] = "\x52\x00\x49\x00\x43\x00\x48\x00\x20\x00\x54\x00\x45\x00\x58\x00\x54\x00\x20\x00\x46\x00\x4f\x00\x52\x00\x4d\x00\x41\x00\x54\x00\x40\x00\x40\x00\x40\x00";
|
||||
const BYTE src2[] = "\x52\x00\x49\x00\x43\x00\x48\x00\x20\x00\x54\x00\x45\x00\x58\x00\x54\x00\x20\x00\x46\x00\x4f\x00\x52\x00\x4d\x00\x41\x00\x54\x00\x00\x00";
|
||||
/* 00 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 */
|
||||
CHAR cmp0[] = { 'R','I','C','H',' ','T','E','X','T',' ','F','O','R','M','A','T', 0 };
|
||||
const CHAR cmp0[] = { 'R','I','C','H',' ','T','E','X','T',' ','F','O','R','M','A','T', 0 };
|
||||
CHAR* dst = NULL;
|
||||
int i;
|
||||
|
||||
@ -380,28 +380,30 @@ fail:
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
BOOL test_ConvertToUnicode_wrapper()
|
||||
static BOOL test_ConvertToUnicode_wrapper(void)
|
||||
{
|
||||
/* 00 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 */
|
||||
CHAR src1[] = { 'R','I','C','H',' ','T','E','X','T',' ','F','O','R','M','A','T','@','@','@' };
|
||||
CHAR src2[] = { 'R','I','C','H',' ','T','E','X','T',' ','F','O','R','M','A','T', 0 };
|
||||
BYTE cmp0[] = "\x52\x00\x49\x00\x43\x00\x48\x00\x20\x00\x54\x00\x45\x00\x58\x00\x54\x00\x20\x00\x46\x00\x4f\x00\x52\x00\x4d\x00\x41\x00\x54\x00\x00\x00";
|
||||
const CHAR src1[] = { 'R','I','C','H',' ','T','E','X','T',' ','F','O','R','M','A','T','@','@','@' };
|
||||
const CHAR src2[] = { 'R','I','C','H',' ','T','E','X','T',' ','F','O','R','M','A','T', 0 };
|
||||
const BYTE cmp0[] = "\x52\x00\x49\x00\x43\x00\x48\x00\x20\x00\x54\x00\x45\x00\x58\x00\x54\x00\x20\x00\x46\x00\x4f\x00\x52\x00\x4d\x00\x41\x00\x54\x00\x00\x00";
|
||||
WCHAR* dst = NULL;
|
||||
int i;
|
||||
int ii;
|
||||
size_t i;
|
||||
|
||||
/* Test unterminated unicode string:
|
||||
* ConvertToUnicode must always null-terminate, even if the src string isn't
|
||||
*/
|
||||
|
||||
printf("Input UTF8 String:\n");
|
||||
string_hexdump((BYTE*) src1, 19);
|
||||
string_hexdump((const BYTE*) src1, 19);
|
||||
|
||||
i = ConvertToUnicode(CP_UTF8, 0, src1, 16, &dst, 0);
|
||||
if (i != 16)
|
||||
ii = ConvertToUnicode(CP_UTF8, 0, src1, 16, &dst, 0);
|
||||
if (ii != 16)
|
||||
{
|
||||
fprintf(stderr, "ConvertToUnicode failure A1: unexpectedly returned %d instead of 16\n", i);
|
||||
fprintf(stderr, "ConvertToUnicode failure A1: unexpectedly returned %d instead of 16\n", ii);
|
||||
goto fail;
|
||||
}
|
||||
i = (size_t)ii;
|
||||
if (dst == NULL)
|
||||
{
|
||||
fprintf(stderr, "ConvertToUnicode failure A2: destination ist NULL\n");
|
||||
@ -412,13 +414,13 @@ BOOL test_ConvertToUnicode_wrapper()
|
||||
fprintf(stderr, "ConvertToUnicode failure A3: dst length is %d instead of 16\n", i);
|
||||
goto fail;
|
||||
}
|
||||
if (_wcscmp(dst, (WCHAR*)cmp0))
|
||||
if (_wcscmp(dst, (const WCHAR*)cmp0))
|
||||
{
|
||||
fprintf(stderr, "ConvertToUnicode failure A4: data mismatch\n");
|
||||
goto fail;
|
||||
}
|
||||
printf("Output UTF16 String:\n");
|
||||
string_hexdump((BYTE*) dst, (i + 1) * sizeof(WCHAR));
|
||||
string_hexdump((const BYTE*) dst, (i + 1) * sizeof(WCHAR));
|
||||
|
||||
free(dst);
|
||||
dst = NULL;
|
||||
@ -426,7 +428,7 @@ BOOL test_ConvertToUnicode_wrapper()
|
||||
/* Test null-terminated string */
|
||||
|
||||
printf("Input UTF8 String:\n");
|
||||
string_hexdump((BYTE*) src2, strlen(src2) + 1);
|
||||
string_hexdump((const BYTE*) src2, strlen(src2) + 1);
|
||||
|
||||
i = ConvertToUnicode(CP_UTF8, 0, src2, -1, &dst, 0);
|
||||
if (i != 17)
|
||||
|
@ -168,7 +168,7 @@ int MultiByteToWideChar(UINT CodePage, DWORD dwFlags, LPCSTR lpMultiByteStr,
|
||||
|
||||
if (cbMultiByte == -1)
|
||||
{
|
||||
size_t len = strlen((const char*) lpMultiByteStr);
|
||||
size_t len = strnlen((const char*) lpMultiByteStr, INT32_MAX);
|
||||
if (len >= INT32_MAX)
|
||||
return 0;
|
||||
cbMultiByte = (int)len + 1;
|
||||
@ -389,7 +389,7 @@ int ConvertToUnicode(UINT CodePage, DWORD dwFlags, LPCSTR lpMultiByteStr,
|
||||
|
||||
if (cbMultiByte == -1)
|
||||
{
|
||||
size_t len = strlen(lpMultiByteStr);
|
||||
size_t len = strnlen(lpMultiByteStr, INT_MAX);
|
||||
if (len >= INT_MAX)
|
||||
return 0;
|
||||
cbMultiByte = (int)(len + 1);
|
||||
|
@ -30,7 +30,7 @@ static BOOL test_crypto_cipher_aes_128_cbc()
|
||||
memset(ibuf, 0, sizeof(ibuf));
|
||||
memset(obuf, 0, sizeof(obuf));
|
||||
|
||||
ilen = strlen(plaintext) + 1;
|
||||
ilen = strnlen(plaintext, sizeof(plaintext)) + 1;
|
||||
memcpy(ibuf, plaintext, ilen);
|
||||
|
||||
ilen = ((ilen + 15) / 16) * 16;
|
||||
@ -121,7 +121,7 @@ static BOOL test_crypto_cipher_rc4()
|
||||
BYTE* text = NULL;
|
||||
WINPR_RC4_CTX* ctx;
|
||||
|
||||
len = strlen(TEST_RC4_PLAINTEXT);
|
||||
len = strnlen(TEST_RC4_PLAINTEXT, sizeof(TEST_RC4_PLAINTEXT));
|
||||
|
||||
if (!(text = (BYTE*) calloc(1, len)))
|
||||
{
|
||||
@ -129,12 +129,12 @@ static BOOL test_crypto_cipher_rc4()
|
||||
goto out;
|
||||
}
|
||||
|
||||
if ((ctx = winpr_RC4_New(TEST_RC4_KEY, strlen((char*) TEST_RC4_KEY))) == NULL)
|
||||
if ((ctx = winpr_RC4_New(TEST_RC4_KEY, strnlen((const char*)TEST_RC4_KEY, sizeof(TEST_RC4_KEY)))) == NULL)
|
||||
{
|
||||
fprintf(stderr, "%s: winpr_RC4_New failed\n", __FUNCTION__);
|
||||
goto out;
|
||||
}
|
||||
rc = winpr_RC4_Update(ctx, len, (BYTE*) TEST_RC4_PLAINTEXT, text);
|
||||
rc = winpr_RC4_Update(ctx, len, (const BYTE*) TEST_RC4_PLAINTEXT, text);
|
||||
winpr_RC4_Free(ctx);
|
||||
if (!rc)
|
||||
{
|
||||
|
@ -23,7 +23,7 @@ static BOOL test_crypto_hash_md5(void)
|
||||
fprintf(stderr, "%s: winpr_Digest_Init failed\n", __FUNCTION__);
|
||||
goto out;
|
||||
}
|
||||
if (!winpr_Digest_Update(ctx, (BYTE*) TEST_MD5_DATA, strlen(TEST_MD5_DATA)))
|
||||
if (!winpr_Digest_Update(ctx, (const BYTE*) TEST_MD5_DATA, strnlen(TEST_MD5_DATA, sizeof(TEST_MD5_DATA))))
|
||||
{
|
||||
fprintf(stderr, "%s: winpr_Digest_Update failed\n", __FUNCTION__);
|
||||
goto out;
|
||||
@ -74,7 +74,7 @@ static BOOL test_crypto_hash_md4(void)
|
||||
fprintf(stderr, "%s: winpr_Digest_Init failed\n", __FUNCTION__);
|
||||
goto out;
|
||||
}
|
||||
if (!winpr_Digest_Update(ctx, (BYTE*) TEST_MD4_DATA, strlen(TEST_MD4_DATA)))
|
||||
if (!winpr_Digest_Update(ctx, (const BYTE*) TEST_MD4_DATA, strnlen(TEST_MD4_DATA, sizeof(TEST_MD4_DATA))))
|
||||
{
|
||||
fprintf(stderr, "%s: winpr_Digest_Update failed\n", __FUNCTION__);
|
||||
goto out;
|
||||
@ -125,7 +125,7 @@ static BOOL test_crypto_hash_sha1(void)
|
||||
fprintf(stderr, "%s: winpr_Digest_Init failed\n", __FUNCTION__);
|
||||
goto out;
|
||||
}
|
||||
if (!winpr_Digest_Update(ctx, (BYTE*) TEST_SHA1_DATA, strlen(TEST_SHA1_DATA)))
|
||||
if (!winpr_Digest_Update(ctx, (const BYTE*) TEST_SHA1_DATA, strnlen(TEST_SHA1_DATA, sizeof(TEST_SHA1_DATA))))
|
||||
{
|
||||
fprintf(stderr, "%s: winpr_Digest_Update failed\n", __FUNCTION__);
|
||||
goto out;
|
||||
@ -179,7 +179,7 @@ static BOOL test_crypto_hash_hmac_md5(void)
|
||||
fprintf(stderr, "%s: winpr_HMAC_Init failed\n", __FUNCTION__);
|
||||
goto out;
|
||||
}
|
||||
if (!winpr_HMAC_Update(ctx, (BYTE*) TEST_HMAC_MD5_DATA, strlen(TEST_HMAC_MD5_DATA)))
|
||||
if (!winpr_HMAC_Update(ctx, (const BYTE*) TEST_HMAC_MD5_DATA, strnlen(TEST_HMAC_MD5_DATA, sizeof(TEST_HMAC_MD5_DATA))))
|
||||
{
|
||||
fprintf(stderr, "%s: winpr_HMAC_Update failed\n", __FUNCTION__);
|
||||
goto out;
|
||||
@ -233,7 +233,7 @@ static BOOL test_crypto_hash_hmac_sha1(void)
|
||||
fprintf(stderr, "%s: winpr_HMAC_Init failed\n", __FUNCTION__);
|
||||
goto out;
|
||||
}
|
||||
if (!winpr_HMAC_Update(ctx, (BYTE*) TEST_HMAC_SHA1_DATA, strlen(TEST_HMAC_SHA1_DATA)))
|
||||
if (!winpr_HMAC_Update(ctx, (const BYTE*) TEST_HMAC_SHA1_DATA, strnlen(TEST_HMAC_SHA1_DATA, sizeof(TEST_HMAC_SHA1_DATA))))
|
||||
{
|
||||
fprintf(stderr, "%s: winpr_HMAC_Update failed\n", __FUNCTION__);
|
||||
goto out;
|
||||
|
@ -11,9 +11,9 @@ int TestCryptoProtectMemory(int argc, char* argv[])
|
||||
{
|
||||
int cbPlainText;
|
||||
int cbCipherText;
|
||||
char* pPlainText;
|
||||
const char* pPlainText;
|
||||
BYTE* pCipherText;
|
||||
pPlainText = (char*) SECRET_PASSWORD_TEST;
|
||||
pPlainText = SECRET_PASSWORD_TEST;
|
||||
cbPlainText = strlen(pPlainText) + 1;
|
||||
cbCipherText = cbPlainText + (CRYPTPROTECTMEMORY_BLOCK_SIZE - (cbPlainText % CRYPTPROTECTMEMORY_BLOCK_SIZE));
|
||||
printf("cbPlainText: %d cbCipherText: %d\n", cbPlainText, cbCipherText);
|
||||
|
@ -222,8 +222,8 @@ LPCH GetEnvironmentStringsA(VOID)
|
||||
{
|
||||
#if !defined(_UWP)
|
||||
char* p;
|
||||
int offset;
|
||||
int length;
|
||||
size_t offset;
|
||||
size_t length;
|
||||
char** envp;
|
||||
DWORD cchEnvironmentBlock;
|
||||
LPCH lpszEnvironmentBlock;
|
||||
@ -238,9 +238,9 @@ LPCH GetEnvironmentStringsA(VOID)
|
||||
|
||||
while (*envp)
|
||||
{
|
||||
length = (int) strlen(*envp);
|
||||
length = strlen(*envp);
|
||||
|
||||
while ((offset + length + 8) > (int) cchEnvironmentBlock)
|
||||
while ((offset + length + 8) > cchEnvironmentBlock)
|
||||
{
|
||||
DWORD new_size;
|
||||
LPCH new_blk;
|
||||
@ -317,17 +317,17 @@ LPCH MergeEnvironmentStrings(PCSTR original, PCSTR merge)
|
||||
{
|
||||
const char* cp;
|
||||
char* p;
|
||||
int offset;
|
||||
int length;
|
||||
size_t offset;
|
||||
size_t length;
|
||||
const char* envp;
|
||||
DWORD cchEnvironmentBlock;
|
||||
LPCH lpszEnvironmentBlock;
|
||||
const char** mergeStrings;
|
||||
int mergeStringLength;
|
||||
int mergeArraySize = 128;
|
||||
int run;
|
||||
int mergeLength;
|
||||
int foundMerge;
|
||||
size_t mergeStringLength;
|
||||
size_t mergeArraySize = 128;
|
||||
size_t run;
|
||||
size_t mergeLength;
|
||||
size_t foundMerge;
|
||||
char* foundEquals;
|
||||
|
||||
mergeStrings = (LPCSTR*) calloc(mergeArraySize, sizeof(char*));
|
||||
@ -341,7 +341,7 @@ LPCH MergeEnvironmentStrings(PCSTR original, PCSTR merge)
|
||||
|
||||
while (*cp && *(cp + 1))
|
||||
{
|
||||
length = (int) strlen(cp);
|
||||
length = strlen(cp);
|
||||
|
||||
if (mergeStringLength == mergeArraySize)
|
||||
{
|
||||
@ -378,10 +378,10 @@ LPCH MergeEnvironmentStrings(PCSTR original, PCSTR merge)
|
||||
|
||||
while ((original != NULL) && (*envp && *(envp+1)))
|
||||
{
|
||||
ULONG old_offset = offset;
|
||||
length = (int) strlen(envp);
|
||||
size_t old_offset = offset;
|
||||
length = strlen(envp);
|
||||
|
||||
while ((offset + length + 8) > (int) cchEnvironmentBlock)
|
||||
while ((offset + length + 8) > cchEnvironmentBlock)
|
||||
{
|
||||
LPCH tmp;
|
||||
cchEnvironmentBlock *= 2;
|
||||
@ -405,7 +405,7 @@ LPCH MergeEnvironmentStrings(PCSTR original, PCSTR merge)
|
||||
if (!mergeStrings[run])
|
||||
continue;
|
||||
|
||||
mergeLength = (int) strlen(mergeStrings[run]);
|
||||
mergeLength = strlen(mergeStrings[run]);
|
||||
foundEquals = strstr(mergeStrings[run], "=");
|
||||
|
||||
if (!foundEquals)
|
||||
@ -421,7 +421,7 @@ LPCH MergeEnvironmentStrings(PCSTR original, PCSTR merge)
|
||||
}
|
||||
else
|
||||
{
|
||||
while ((offset + mergeLength + 8) > (int) cchEnvironmentBlock)
|
||||
while ((offset + mergeLength + 8) > cchEnvironmentBlock)
|
||||
{
|
||||
LPCH tmp;
|
||||
cchEnvironmentBlock *= 2;
|
||||
@ -462,9 +462,9 @@ LPCH MergeEnvironmentStrings(PCSTR original, PCSTR merge)
|
||||
if (!mergeStrings[run])
|
||||
continue;
|
||||
|
||||
mergeLength = (int) strlen(mergeStrings[run]);
|
||||
mergeLength = strlen(mergeStrings[run]);
|
||||
|
||||
while ((offset + mergeLength + 8) > (int) cchEnvironmentBlock)
|
||||
while ((offset + mergeLength + 8) > cchEnvironmentBlock)
|
||||
{
|
||||
LPCH tmp;
|
||||
cchEnvironmentBlock *= 2;
|
||||
@ -497,23 +497,23 @@ LPCH MergeEnvironmentStrings(PCSTR original, PCSTR merge)
|
||||
|
||||
DWORD GetEnvironmentVariableEBA(LPCSTR envBlock, LPCSTR lpName, LPSTR lpBuffer, DWORD nSize)
|
||||
{
|
||||
int vLength = 0;
|
||||
size_t vLength = 0;
|
||||
char* env = NULL;
|
||||
char* foundEquals;
|
||||
const char* penvb = envBlock;
|
||||
int nLength, fLength, lpNameLength;
|
||||
size_t nLength, fLength, lpNameLength;
|
||||
|
||||
if (!lpName || NULL == envBlock)
|
||||
return 0;
|
||||
|
||||
lpNameLength = (int) strlen(lpName);
|
||||
lpNameLength = strlen(lpName);
|
||||
|
||||
if (lpNameLength < 1)
|
||||
return 0;
|
||||
|
||||
while (*penvb && *(penvb + 1))
|
||||
{
|
||||
fLength = (int) strlen(penvb);
|
||||
fLength = strlen(penvb);
|
||||
foundEquals = strstr(penvb,"=");
|
||||
|
||||
if (!foundEquals)
|
||||
@ -522,7 +522,7 @@ DWORD GetEnvironmentVariableEBA(LPCSTR envBlock, LPCSTR lpName, LPSTR lpBuffer,
|
||||
return 0;
|
||||
}
|
||||
|
||||
nLength = (int) (foundEquals - penvb);
|
||||
nLength = (foundEquals - penvb);
|
||||
|
||||
if (nLength != lpNameLength)
|
||||
{
|
||||
@ -542,9 +542,9 @@ DWORD GetEnvironmentVariableEBA(LPCSTR envBlock, LPCSTR lpName, LPSTR lpBuffer,
|
||||
if (!env)
|
||||
return 0;
|
||||
|
||||
vLength = (int) strlen(env);
|
||||
vLength = strlen(env);
|
||||
|
||||
if ((vLength + 1 > (int) nSize) || (!lpBuffer))
|
||||
if ((vLength + 1 > nSize) || (!lpBuffer))
|
||||
return vLength + 1;
|
||||
|
||||
CopyMemory(lpBuffer, env, vLength + 1);
|
||||
@ -597,9 +597,9 @@ BOOL SetEnvironmentVariableEBA(LPSTR* envBlock, LPCSTR lpName, LPCSTR lpValue)
|
||||
char** EnvironmentBlockToEnvpA(LPCH lpszEnvironmentBlock)
|
||||
{
|
||||
char* p;
|
||||
int index;
|
||||
int count;
|
||||
int length;
|
||||
SSIZE_T index;
|
||||
size_t count;
|
||||
size_t length;
|
||||
char** envp = NULL;
|
||||
|
||||
count = 0;
|
||||
@ -610,7 +610,7 @@ char** EnvironmentBlockToEnvpA(LPCH lpszEnvironmentBlock)
|
||||
|
||||
while (p[0] && p[1])
|
||||
{
|
||||
length = (int) strlen(p);
|
||||
length = strlen(p);
|
||||
p += (length + 1);
|
||||
count++;
|
||||
}
|
||||
@ -625,7 +625,7 @@ char** EnvironmentBlockToEnvpA(LPCH lpszEnvironmentBlock)
|
||||
|
||||
while (p[0] && p[1])
|
||||
{
|
||||
length = (int) strlen(p);
|
||||
length = strlen(p);
|
||||
envp[index] = _strdup(p);
|
||||
if (!envp[index])
|
||||
{
|
||||
|
@ -8,7 +8,7 @@ int TestEnvironmentMergeEnvironmentStrings(int argc, char* argv[])
|
||||
{
|
||||
#ifndef _WIN32
|
||||
TCHAR* p;
|
||||
int length;
|
||||
size_t length;
|
||||
LPTCH lpszEnvironmentBlock;
|
||||
LPTCH lpsz2Merge = "SHELL=123\0test=1\0test1=2\0DISPLAY=:77\0\0";
|
||||
LPTCH lpszMergedEnvironmentBlock;
|
||||
|
@ -17,7 +17,7 @@ int TestEnvironmentSetEnvironmentVariable(int argc, char* argv[])
|
||||
nSize = GetEnvironmentVariableA(TEST_NAME, NULL, 0);
|
||||
|
||||
/* check if value returned is len + 1 ) */
|
||||
if (nSize != strlen(TEST_VALUE) + 1)
|
||||
if (nSize != strnlen(TEST_VALUE, sizeof(TEST_VALUE)) + 1)
|
||||
{
|
||||
printf("GetEnvironmentVariableA not found error\n");
|
||||
return -1;
|
||||
@ -30,7 +30,7 @@ int TestEnvironmentSetEnvironmentVariable(int argc, char* argv[])
|
||||
|
||||
nSize = GetEnvironmentVariableA(TEST_NAME, lpBuffer, nSize);
|
||||
|
||||
if (nSize != strlen(TEST_VALUE))
|
||||
if (nSize != strnlen(TEST_VALUE, sizeof(TEST_VALUE)))
|
||||
{
|
||||
printf("GetEnvironmentVariableA wrong size returned\n");
|
||||
goto fail;
|
||||
|
@ -266,7 +266,7 @@ char* GetNamedPipeNameWithoutPrefixA(LPCSTR lpName)
|
||||
if (!IsNamedPipeFileNameA(lpName))
|
||||
return NULL;
|
||||
|
||||
lpFileName = _strdup(&lpName[strlen(NAMED_PIPE_PREFIX_PATH)]);
|
||||
lpFileName = _strdup(&lpName[strnlen(NAMED_PIPE_PREFIX_PATH, sizeof(NAMED_PIPE_PREFIX_PATH))]);
|
||||
return lpFileName;
|
||||
}
|
||||
|
||||
|
@ -27,7 +27,7 @@
|
||||
int TestFileGetStdHandle(int argc, char* argv[])
|
||||
{
|
||||
HANDLE so;
|
||||
char *buf = "happy happy";
|
||||
const char buf[] = "happy happy";
|
||||
DWORD bytesWritten;
|
||||
|
||||
so = GetStdHandle(STD_OUTPUT_HANDLE);
|
||||
@ -36,8 +36,8 @@ int TestFileGetStdHandle(int argc, char* argv[])
|
||||
fprintf(stderr, "GetStdHandle failed ;(\n");
|
||||
return -1;
|
||||
}
|
||||
WriteFile(so, buf, strlen(buf), &bytesWritten, FALSE);
|
||||
if (bytesWritten != strlen(buf))
|
||||
WriteFile(so, buf, strnlen(buf, sizeof(buf)), &bytesWritten, FALSE);
|
||||
if (bytesWritten != strnlen(buf, sizeof (buf)))
|
||||
{
|
||||
fprintf(stderr, "write failed\n");
|
||||
return -1;
|
||||
|
@ -74,7 +74,7 @@ char* GetDeviceFileNameWithoutPrefixA(LPCSTR lpName)
|
||||
if (strncmp(lpName, DEVICE_FILE_PREFIX_PATH, sizeof(DEVICE_FILE_PREFIX_PATH) - 1) != 0)
|
||||
return NULL;
|
||||
|
||||
lpFileName = _strdup(&lpName[strlen(DEVICE_FILE_PREFIX_PATH)]);
|
||||
lpFileName = _strdup(&lpName[strnlen(DEVICE_FILE_PREFIX_PATH, sizeof (DEVICE_FILE_PREFIX_PATH))]);
|
||||
return lpFileName;
|
||||
}
|
||||
|
||||
|
@ -283,7 +283,7 @@ DWORD GetModuleFileNameA(HMODULE hModule, LPSTR lpFilename, DWORD nSize)
|
||||
}
|
||||
|
||||
buffer[status] = '\0';
|
||||
length = strlen(buffer);
|
||||
length = strnlen(buffer, sizeof(buffer));
|
||||
|
||||
if (length < nSize)
|
||||
{
|
||||
@ -321,7 +321,7 @@ DWORD GetModuleFileNameA(HMODULE hModule, LPSTR lpFilename, DWORD nSize)
|
||||
* so use realpath to find the absolute, canonical path.
|
||||
*/
|
||||
realpath(path, buffer);
|
||||
length = strlen(buffer);
|
||||
length = strnlen(buffer, sizeof(buffer));
|
||||
|
||||
if (length < nSize)
|
||||
{
|
||||
|
@ -291,10 +291,10 @@ LONG RegQueryValueExA(HKEY hKey, LPCSTR lpValueName,
|
||||
}
|
||||
else if (pValue->type == REG_SZ)
|
||||
{
|
||||
int length;
|
||||
size_t length;
|
||||
char* pData = (char*) lpData;
|
||||
|
||||
length = (int) strlen(pValue->data.string);
|
||||
length = strnlen(pValue->data.string, UINT32_MAX);
|
||||
|
||||
if (pData != NULL)
|
||||
{
|
||||
@ -302,7 +302,7 @@ LONG RegQueryValueExA(HKEY hKey, LPCSTR lpValueName,
|
||||
pData[length] = '\0';
|
||||
}
|
||||
|
||||
*lpcbData = length;
|
||||
*lpcbData = (UINT32)length;
|
||||
|
||||
return ERROR_SUCCESS;
|
||||
}
|
||||
|
@ -91,16 +91,16 @@
|
||||
LPSTR* CommandLineToArgvA(LPCSTR lpCmdLine, int* pNumArgs)
|
||||
{
|
||||
char* p;
|
||||
int length;
|
||||
size_t length;
|
||||
char* pBeg;
|
||||
char* pEnd;
|
||||
char* buffer;
|
||||
char* pOutput;
|
||||
int numArgs = 0;
|
||||
LPSTR* pArgs;
|
||||
int maxNumArgs;
|
||||
int maxBufferSize;
|
||||
int cmdLineLength;
|
||||
size_t maxNumArgs;
|
||||
size_t maxBufferSize;
|
||||
size_t cmdLineLength;
|
||||
BOOL* lpEscapedChars;
|
||||
LPSTR lpEscapedCmdLine;
|
||||
|
||||
@ -112,7 +112,7 @@ LPSTR* CommandLineToArgvA(LPCSTR lpCmdLine, int* pNumArgs)
|
||||
|
||||
pArgs = NULL;
|
||||
lpEscapedCmdLine = NULL;
|
||||
cmdLineLength = (int) strlen(lpCmdLine);
|
||||
cmdLineLength = strlen(lpCmdLine);
|
||||
lpEscapedChars = (BOOL*) calloc(cmdLineLength + 1, sizeof(BOOL));
|
||||
|
||||
if (!lpEscapedChars)
|
||||
@ -120,7 +120,8 @@ LPSTR* CommandLineToArgvA(LPCSTR lpCmdLine, int* pNumArgs)
|
||||
|
||||
if (strstr(lpCmdLine, "\\\""))
|
||||
{
|
||||
int i, n;
|
||||
size_t i;
|
||||
size_t n;
|
||||
char* pLastEnd = NULL;
|
||||
lpEscapedCmdLine = (char*) calloc(cmdLineLength + 1, sizeof(char));
|
||||
|
||||
@ -140,7 +141,7 @@ LPSTR* CommandLineToArgvA(LPCSTR lpCmdLine, int* pNumArgs)
|
||||
|
||||
if (!pBeg)
|
||||
{
|
||||
length = (int) strlen(p);
|
||||
length = strlen(p);
|
||||
CopyMemory(pOutput, p, length);
|
||||
pOutput += length;
|
||||
break;
|
||||
@ -159,8 +160,8 @@ LPSTR* CommandLineToArgvA(LPCSTR lpCmdLine, int* pNumArgs)
|
||||
pBeg--;
|
||||
}
|
||||
|
||||
n = (int)((pEnd - pBeg) - 1);
|
||||
length = (int)(pBeg - pLastEnd);
|
||||
n = ((pEnd - pBeg) - 1);
|
||||
length = (pBeg - pLastEnd);
|
||||
CopyMemory(pOutput, p, length);
|
||||
pOutput += length;
|
||||
p += length;
|
||||
@ -179,7 +180,7 @@ LPSTR* CommandLineToArgvA(LPCSTR lpCmdLine, int* pNumArgs)
|
||||
|
||||
*pOutput++ = '\0';
|
||||
lpCmdLine = (LPCSTR) lpEscapedCmdLine;
|
||||
cmdLineLength = (int) strlen(lpCmdLine);
|
||||
cmdLineLength = strlen(lpCmdLine);
|
||||
}
|
||||
|
||||
maxNumArgs = 2;
|
||||
@ -223,7 +224,7 @@ LPSTR* CommandLineToArgvA(LPCSTR lpCmdLine, int* pNumArgs)
|
||||
if (*p != '"')
|
||||
{
|
||||
/* no whitespace escaped with double quotes */
|
||||
length = (int)(p - pBeg);
|
||||
length = (p - pBeg);
|
||||
CopyMemory(pOutput, pBeg, length);
|
||||
pOutput[length] = '\0';
|
||||
pArgs[numArgs++] = pOutput;
|
||||
|
@ -107,10 +107,10 @@ static BOOL WLog_BinaryAppender_WriteMessage(wLog* log, wLogAppender* appender,
|
||||
{
|
||||
FILE* fp;
|
||||
wStream* s;
|
||||
int MessageLength;
|
||||
int FileNameLength;
|
||||
int FunctionNameLength;
|
||||
int TextStringLength;
|
||||
size_t MessageLength;
|
||||
size_t FileNameLength;
|
||||
size_t FunctionNameLength;
|
||||
size_t TextStringLength;
|
||||
BOOL ret = TRUE;
|
||||
wLogBinaryAppender* binaryAppender;
|
||||
|
||||
@ -124,33 +124,36 @@ static BOOL WLog_BinaryAppender_WriteMessage(wLog* log, wLogAppender* appender,
|
||||
if (!fp)
|
||||
return FALSE;
|
||||
|
||||
FileNameLength = (int) strlen(message->FileName);
|
||||
FunctionNameLength = (int) strlen(message->FunctionName);
|
||||
TextStringLength = (int) strlen(message->TextString);
|
||||
FileNameLength = strlen(message->FileName);
|
||||
FunctionNameLength = strlen(message->FunctionName);
|
||||
TextStringLength = strlen(message->TextString);
|
||||
|
||||
MessageLength = 16 +
|
||||
(4 + FileNameLength + 1) +
|
||||
(4 + FunctionNameLength + 1) +
|
||||
(4 + TextStringLength + 1);
|
||||
|
||||
if ((MessageLength > UINT32_MAX) || (FileNameLength > UINT32_MAX) || (FunctionNameLength > UINT32_MAX) || (TextStringLength > UINT32_MAX))
|
||||
return FALSE;
|
||||
|
||||
s = Stream_New(NULL, MessageLength);
|
||||
if (!s)
|
||||
return FALSE;
|
||||
|
||||
Stream_Write_UINT32(s, MessageLength);
|
||||
Stream_Write_UINT32(s, (UINT32)MessageLength);
|
||||
|
||||
Stream_Write_UINT32(s, message->Type);
|
||||
Stream_Write_UINT32(s, message->Level);
|
||||
|
||||
Stream_Write_UINT32(s, message->LineNumber);
|
||||
|
||||
Stream_Write_UINT32(s, FileNameLength);
|
||||
Stream_Write_UINT32(s, (UINT32)FileNameLength);
|
||||
Stream_Write(s, message->FileName, FileNameLength + 1);
|
||||
|
||||
Stream_Write_UINT32(s, FunctionNameLength);
|
||||
Stream_Write_UINT32(s, (UINT32)FunctionNameLength);
|
||||
Stream_Write(s, message->FunctionName, FunctionNameLength + 1);
|
||||
|
||||
Stream_Write_UINT32(s, TextStringLength);
|
||||
Stream_Write_UINT32(s, (UINT32)TextStringLength);
|
||||
Stream_Write(s, message->TextString, TextStringLength + 1);
|
||||
|
||||
Stream_SealLength(s);
|
||||
|
Loading…
Reference in New Issue
Block a user