mirror of
https://git.tartarus.org/simon/putty.git
synced 2025-03-22 06:38:37 -05:00
The Windows HANDLE type, despite being a `void *', does not actually
behave like a pointer. In particular, the right thing to set a HANDLE to to indicate that it's invalid is INVALID_HANDLE_VALUE, not NULL. Crack down on sloppy use of NULL HANDLEs across all Windows code. (There is one oddity, which is that {Create,Open}FileMapping are documented to return a NULL HANDLE instead of INVALID_HANDLE_VALUE on failure. Shrug. If MS want to be inconsistent, I suppose I have to live with it.) [originally from svn r6833]
This commit is contained in:
parent
088bc613ed
commit
f0a9c33f25
@ -1964,11 +1964,11 @@ static LRESULT CALLBACK WndProc(HWND hwnd, UINT message,
|
|||||||
sa.nLength = sizeof(sa);
|
sa.nLength = sizeof(sa);
|
||||||
sa.lpSecurityDescriptor = NULL;
|
sa.lpSecurityDescriptor = NULL;
|
||||||
sa.bInheritHandle = TRUE;
|
sa.bInheritHandle = TRUE;
|
||||||
filemap = CreateFileMapping((HANDLE) 0xFFFFFFFF,
|
filemap = CreateFileMapping(INVALID_HANDLE_VALUE,
|
||||||
&sa,
|
&sa,
|
||||||
PAGE_READWRITE,
|
PAGE_READWRITE,
|
||||||
0, sizeof(Config), NULL);
|
0, sizeof(Config), NULL);
|
||||||
if (filemap) {
|
if (filemap && filemap != INVALID_HANDLE_VALUE) {
|
||||||
p = (Config *) MapViewOfFile(filemap,
|
p = (Config *) MapViewOfFile(filemap,
|
||||||
FILE_MAP_WRITE,
|
FILE_MAP_WRITE,
|
||||||
0, 0, sizeof(Config));
|
0, 0, sizeof(Config));
|
||||||
|
@ -85,7 +85,7 @@ int agent_query(void *in, int inlen, void **out, int *outlen,
|
|||||||
mapname = dupprintf("PageantRequest%08x", (unsigned)GetCurrentThreadId());
|
mapname = dupprintf("PageantRequest%08x", (unsigned)GetCurrentThreadId());
|
||||||
filemap = CreateFileMapping(INVALID_HANDLE_VALUE, NULL, PAGE_READWRITE,
|
filemap = CreateFileMapping(INVALID_HANDLE_VALUE, NULL, PAGE_READWRITE,
|
||||||
0, AGENT_MAX_MSGLEN, mapname);
|
0, AGENT_MAX_MSGLEN, mapname);
|
||||||
if (!filemap)
|
if (filemap == NULL || filemap == INVALID_HANDLE_VALUE)
|
||||||
return 1; /* *out == NULL, so failure */
|
return 1; /* *out == NULL, so failure */
|
||||||
p = MapViewOfFile(filemap, FILE_MAP_WRITE, 0, 0, 0);
|
p = MapViewOfFile(filemap, FILE_MAP_WRITE, 0, 0, 0);
|
||||||
memcpy(p, in, inlen);
|
memcpy(p, in, inlen);
|
||||||
|
@ -29,11 +29,11 @@ static void serial_terminate(Serial serial)
|
|||||||
handle_free(serial->in);
|
handle_free(serial->in);
|
||||||
serial->in = NULL;
|
serial->in = NULL;
|
||||||
}
|
}
|
||||||
if (serial->port) {
|
if (serial->port != INVALID_HANDLE_VALUE) {
|
||||||
if (serial->break_in_progress)
|
if (serial->break_in_progress)
|
||||||
ClearCommBreak(serial->port);
|
ClearCommBreak(serial->port);
|
||||||
CloseHandle(serial->port);
|
CloseHandle(serial->port);
|
||||||
serial->port = NULL;
|
serial->port = INVALID_HANDLE_VALUE;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -208,7 +208,7 @@ static const char *serial_init(void *frontend_handle, void **backend_handle,
|
|||||||
const char *err;
|
const char *err;
|
||||||
|
|
||||||
serial = snew(struct serial_backend_data);
|
serial = snew(struct serial_backend_data);
|
||||||
serial->port = NULL;
|
serial->port = INVALID_HANDLE_VALUE;
|
||||||
serial->out = serial->in = NULL;
|
serial->out = serial->in = NULL;
|
||||||
serial->bufsize = 0;
|
serial->bufsize = 0;
|
||||||
serial->break_in_progress = FALSE;
|
serial->break_in_progress = FALSE;
|
||||||
@ -391,7 +391,7 @@ static void serial_provide_logctx(void *handle, void *logctx)
|
|||||||
static int serial_exitcode(void *handle)
|
static int serial_exitcode(void *handle)
|
||||||
{
|
{
|
||||||
Serial serial = (Serial) handle;
|
Serial serial = (Serial) handle;
|
||||||
if (serial->port != NULL)
|
if (serial->port != INVALID_HANDLE_VALUE)
|
||||||
return -1; /* still connected */
|
return -1; /* still connected */
|
||||||
else
|
else
|
||||||
/* Exit codes are a meaningless concept with serial ports */
|
/* Exit codes are a meaningless concept with serial ports */
|
||||||
|
@ -431,7 +431,7 @@ char *dir_file_cat(char *dir, char *file)
|
|||||||
* Be told what socket we're supposed to be using.
|
* Be told what socket we're supposed to be using.
|
||||||
*/
|
*/
|
||||||
static SOCKET sftp_ssh_socket = INVALID_SOCKET;
|
static SOCKET sftp_ssh_socket = INVALID_SOCKET;
|
||||||
static HANDLE netevent = NULL;
|
static HANDLE netevent = INVALID_HANDLE_VALUE;
|
||||||
char *do_select(SOCKET skt, int startup)
|
char *do_select(SOCKET skt, int startup)
|
||||||
{
|
{
|
||||||
int events;
|
int events;
|
||||||
@ -481,11 +481,11 @@ int do_eventsel_loop(HANDLE other_event)
|
|||||||
handles = sresize(handles, nhandles+2, HANDLE);
|
handles = sresize(handles, nhandles+2, HANDLE);
|
||||||
nallhandles = nhandles;
|
nallhandles = nhandles;
|
||||||
|
|
||||||
if (netevent)
|
if (netevent != INVALID_HANDLE_VALUE)
|
||||||
handles[netindex = nallhandles++] = netevent;
|
handles[netindex = nallhandles++] = netevent;
|
||||||
else
|
else
|
||||||
netindex = -1;
|
netindex = -1;
|
||||||
if (other_event)
|
if (other_event != INVALID_HANDLE_VALUE)
|
||||||
handles[otherindex = nallhandles++] = other_event;
|
handles[otherindex = nallhandles++] = other_event;
|
||||||
else
|
else
|
||||||
otherindex = -1;
|
otherindex = -1;
|
||||||
@ -625,7 +625,7 @@ int ssh_sftp_loop_iteration(void)
|
|||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
} else {
|
} else {
|
||||||
return do_eventsel_loop(NULL);
|
return do_eventsel_loop(INVALID_HANDLE_VALUE);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user