These ones are stylistic rather than potential bugs: mostly signedness
of char pointers in cases where they clearly aren't going to cause the
wrong thing to actually happen, and one thing in winsecur.c where
clang would have preferred an extra pair of braces around some
initialisers but it's legal with or without. But since some of clang's
warnings turn out to be quite useful, it seems worth silencing these
harmless ones so as to be able to see the rest.
*/
term_seen_key_event(term);
if (ldisc)
*/
term_seen_key_event(term);
if (ldisc)
- ldisc_send(ldisc, buf, len, 1);
+ ldisc_send(ldisc, (char *)buf, len, 1);
case WM_IME_CHAR:
if (wParam & 0xFF00) {
case WM_IME_CHAR:
if (wParam & 0xFF00) {
buf[1] = wParam;
buf[0] = wParam >> 8;
buf[1] = wParam;
buf[0] = wParam >> 8;
- p += format_arrow_key(p, term, xkey, shift_state);
+ p += format_arrow_key((char *)p, term, xkey, shift_state);
if (ret == ERROR_SUCCESS && type == REG_SZ) {
buffer = snewn(size + 20, char);
ret = RegQueryValueEx(regkey, "InstallDir", NULL,
if (ret == ERROR_SUCCESS && type == REG_SZ) {
buffer = snewn(size + 20, char);
ret = RegQueryValueEx(regkey, "InstallDir", NULL,
+ &type, (LPBYTE)buffer, &size);
if (ret == ERROR_SUCCESS && type == REG_SZ) {
strcat(buffer, "\\bin\\gssapi32.dll");
module = LoadLibrary(buffer);
if (ret == ERROR_SUCCESS && type == REG_SZ) {
strcat(buffer, "\\bin\\gssapi32.dll");
module = LoadLibrary(buffer);
* we'll need for the output. Discard the return value since it
* will almost certainly be a failure due to lack of space.
*/
* we'll need for the output. Discard the return value since it
* will almost certainly be a failure due to lack of space.
*/
- EnumPrinters(param, NULL, level, (*buffer)+offset, 512,
+ EnumPrinters(param, NULL, level, (LPBYTE)((*buffer)+offset), 512,
&needed, &nprinters);
if (needed < 512)
&needed, &nprinters);
if (needed < 512)
*buffer = sresize(*buffer, offset+needed, char);
*buffer = sresize(*buffer, offset+needed, char);
- if (EnumPrinters(param, NULL, level, (*buffer)+offset,
+ if (EnumPrinters(param, NULL, level, (LPBYTE)((*buffer)+offset),
needed, &needed, &nprinters) == 0)
return FALSE;
needed, &needed, &nprinters) == 0)
return FALSE;
docinfo.pOutputFile = NULL;
docinfo.pDatatype = "RAW";
docinfo.pOutputFile = NULL;
docinfo.pDatatype = "RAW";
- if (!StartDocPrinter(ret->hprinter, 1, (LPSTR)&docinfo))
+ if (!StartDocPrinter(ret->hprinter, 1, (LPBYTE)&docinfo))
goto error;
jobstarted = 1;
goto error;
jobstarted = 1;
int getsids(char **error)
{
int getsids(char **error)
{
- SID_IDENTIFIER_AUTHORITY world_auth = SECURITY_WORLD_SID_AUTHORITY;
- SID_IDENTIFIER_AUTHORITY nt_auth = SECURITY_NT_AUTHORITY;
+ SID_IDENTIFIER_AUTHORITY world_auth = { SECURITY_WORLD_SID_AUTHORITY };
+ SID_IDENTIFIER_AUTHORITY nt_auth = { SECURITY_NT_AUTHORITY };
int ret = FALSE;
*error = NULL;
int ret = FALSE;
*error = NULL;
void write_setting_s(void *handle, const char *key, const char *value)
{
if (handle)
void write_setting_s(void *handle, const char *key, const char *value)
{
if (handle)
- RegSetValueEx((HKEY) handle, key, 0, REG_SZ, value,
+ RegSetValueEx((HKEY) handle, key, 0, REG_SZ, (CONST BYTE *)value,
allocsize = size+1; /* allow for an extra NUL if needed */
ret = snewn(allocsize, char);
if (RegQueryValueEx((HKEY) handle, key, 0,
allocsize = size+1; /* allow for an extra NUL if needed */
ret = snewn(allocsize, char);
if (RegQueryValueEx((HKEY) handle, key, 0,
- &type, ret, &size) != ERROR_SUCCESS ||
+ &type, (BYTE *)ret, &size) != ERROR_SUCCESS ||
type != REG_SZ) {
sfree(ret);
return NULL;
type != REG_SZ) {
sfree(ret);
return NULL;
readlen = len;
otherstr = snewn(len, char);
readlen = len;
otherstr = snewn(len, char);
- ret = RegQueryValueEx(rkey, regname, NULL, &type, otherstr, &readlen);
+ ret = RegQueryValueEx(rkey, regname, NULL,
+ &type, (BYTE *)otherstr, &readlen);
if (ret != ERROR_SUCCESS && ret != ERROR_MORE_DATA &&
!strcmp(keytype, "rsa")) {
if (ret != ERROR_SUCCESS && ret != ERROR_MORE_DATA &&
!strcmp(keytype, "rsa")) {
char *oldstyle = snewn(len + 10, char); /* safety margin */
readlen = len;
ret = RegQueryValueEx(rkey, justhost, NULL, &type,
char *oldstyle = snewn(len + 10, char); /* safety margin */
readlen = len;
ret = RegQueryValueEx(rkey, justhost, NULL, &type,
+ (BYTE *)oldstyle, &readlen);
if (ret == ERROR_SUCCESS && type == REG_SZ) {
/*
if (ret == ERROR_SUCCESS && type == REG_SZ) {
/*
* wrong, and hyper-cautiously do nothing.
*/
if (!strcmp(otherstr, key))
* wrong, and hyper-cautiously do nothing.
*/
if (!strcmp(otherstr, key))
- RegSetValueEx(rkey, regname, 0, REG_SZ, otherstr,
+ RegSetValueEx(rkey, regname, 0, REG_SZ, (BYTE *)otherstr,
if (RegCreateKey(HKEY_CURRENT_USER, PUTTY_REG_POS "\\SshHostKeys",
&rkey) == ERROR_SUCCESS) {
if (RegCreateKey(HKEY_CURRENT_USER, PUTTY_REG_POS "\\SshHostKeys",
&rkey) == ERROR_SUCCESS) {
- RegSetValueEx(rkey, regname, 0, REG_SZ, key, strlen(key) + 1);
+ RegSetValueEx(rkey, regname, 0, REG_SZ, (BYTE *)key, strlen(key) + 1);
RegCloseKey(rkey);
} /* else key does not exist in registry */
RegCloseKey(rkey);
} /* else key does not exist in registry */
if (RegOpenKey(HKEY_CURRENT_USER, PUTTY_REG_POS, &rkey) ==
ERROR_SUCCESS) {
int ret = RegQueryValueEx(rkey, "RandSeedFile",
if (RegOpenKey(HKEY_CURRENT_USER, PUTTY_REG_POS, &rkey) ==
ERROR_SUCCESS) {
int ret = RegQueryValueEx(rkey, "RandSeedFile",
- 0, &type, seedpath, &size);
+ 0, &type, (BYTE *)seedpath, &size);
if (ret != ERROR_SUCCESS || type != REG_SZ)
seedpath[0] = '\0';
RegCloseKey(rkey);
if (ret != ERROR_SUCCESS || type != REG_SZ)
seedpath[0] = '\0';
RegCloseKey(rkey);
value_length = 200;
old_value = snewn(value_length, char);
ret = RegQueryValueEx(pjumplist_key, reg_jumplist_value, NULL, &type,
value_length = 200;
old_value = snewn(value_length, char);
ret = RegQueryValueEx(pjumplist_key, reg_jumplist_value, NULL, &type,
- old_value, &value_length);
+ (BYTE *)old_value, &value_length);
/* When the passed buffer is too small, ERROR_MORE_DATA is
* returned and the required size is returned in the length
* argument. */
/* When the passed buffer is too small, ERROR_MORE_DATA is
* returned and the required size is returned in the length
* argument. */
sfree(old_value);
old_value = snewn(value_length, char);
ret = RegQueryValueEx(pjumplist_key, reg_jumplist_value, NULL, &type,
sfree(old_value);
old_value = snewn(value_length, char);
ret = RegQueryValueEx(pjumplist_key, reg_jumplist_value, NULL, &type,
- old_value, &value_length);
+ (BYTE *)old_value, &value_length);
}
if (ret == ERROR_FILE_NOT_FOUND) {
}
if (ret == ERROR_FILE_NOT_FOUND) {
/* Save the new list to the registry. */
ret = RegSetValueEx(pjumplist_key, reg_jumplist_value, 0, REG_MULTI_SZ,
/* Save the new list to the registry. */
ret = RegSetValueEx(pjumplist_key, reg_jumplist_value, 0, REG_MULTI_SZ,
- new_value, piterator_new - new_value);
+ (BYTE *)new_value, piterator_new - new_value);
sfree(old_value);
old_value = new_value;
sfree(old_value);
old_value = new_value;