Mercurial > emacs
diff src/w32.c @ 90580:7f3f771c85fa
Merge from emacs--devo--0
Patches applied:
* emacs--devo--0 (patch 382-398)
- Update from CVS
- Update from erc--emacs--22
- Fix ERC bug introduced in last patch
- Merge from gnus--rel--5.10
* gnus--rel--5.10 (patch 123-125)
- Update from CVS
Revision: emacs@sv.gnu.org/emacs--unicode--0--patch-101
author | Miles Bader <miles@gnu.org> |
---|---|
date | Wed, 16 Aug 2006 14:08:49 +0000 |
parents | 858cb33ae39d 95d41ccb4448 |
children | c358d0861b16 |
line wrap: on
line diff
--- a/src/w32.c Mon Aug 07 06:45:41 2006 +0000 +++ b/src/w32.c Wed Aug 16 14:08:49 2006 +0000 @@ -323,6 +323,28 @@ return buf; } +/* Return 1 if P is a valid pointer to an object of size SIZE. Return + 0 if P is NOT a valid pointer. Return -1 if we cannot validate P. + + This is called from alloc.c:valid_pointer_p. */ +int +w32_valid_pointer_p (void *p, int size) +{ + SIZE_T done; + HANDLE h = OpenProcess (PROCESS_VM_READ, FALSE, GetCurrentProcessId ()); + + if (h) + { + unsigned char *buf = alloca (size); + int retval = ReadProcessMemory (h, p, buf, size, &done); + + CloseHandle (h); + return retval; + } + else + return -1; +} + static char startup_dir[MAXPATHLEN]; /* Get the current working directory. */