summaryrefslogtreecommitdiffstats
path: root/src/iscygpty.c
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2017-08-31 21:35:45 +0200
committerBram Moolenaar <Bram@vim.org>2017-08-31 21:35:45 +0200
commit9e8dcf9d6fa15523800005a32d40cf0382178ab0 (patch)
tree6e5e9f22efaf70138f176affbb855cf151169b27 /src/iscygpty.c
parentda73253a0b908bad03ddcd625fe3fb32008efbf6 (diff)
patch 8.0.1030: MS-Windows: wrong size computation in is_cygpty()v8.0.1030
Problem: MS-Windows: wrong size computation in is_cygpty(). Solution: Compute the size properly. (Ken Takata)
Diffstat (limited to 'src/iscygpty.c')
-rw-r--r--src/iscygpty.c24
1 files changed, 14 insertions, 10 deletions
diff --git a/src/iscygpty.c b/src/iscygpty.c
index d7037c56fc..722f88f2f4 100644
--- a/src/iscygpty.c
+++ b/src/iscygpty.c
@@ -2,7 +2,7 @@
* iscygpty.c -- part of ptycheck
* https://github.com/k-takata/ptycheck
*
- * Copyright (c) 2015-2016 K.Takata
+ * Copyright (c) 2015-2017 K.Takata
*
* You can redistribute it and/or modify it under the terms of either
* the MIT license (as described below) or the Vim license.
@@ -27,6 +27,8 @@
* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
+#ifdef _WIN32
+
#include <ctype.h>
#include <io.h>
#include <wchar.h>
@@ -60,19 +62,19 @@
//#define USE_DYNFILEID
#ifdef USE_DYNFILEID
typedef BOOL (WINAPI *pfnGetFileInformationByHandleEx)(
- HANDLE hFile,
+ HANDLE hFile,
FILE_INFO_BY_HANDLE_CLASS FileInformationClass,
- LPVOID lpFileInformation,
- DWORD dwBufferSize
+ LPVOID lpFileInformation,
+ DWORD dwBufferSize
);
static pfnGetFileInformationByHandleEx pGetFileInformationByHandleEx = NULL;
# ifndef USE_FILEEXTD
static BOOL WINAPI stub_GetFileInformationByHandleEx(
- HANDLE hFile,
+ HANDLE hFile,
FILE_INFO_BY_HANDLE_CLASS FileInformationClass,
- LPVOID lpFileInformation,
- DWORD dwBufferSize
+ LPVOID lpFileInformation,
+ DWORD dwBufferSize
)
{
return FALSE;
@@ -111,7 +113,7 @@ int is_cygpty(int fd)
return 0;
#else
HANDLE h;
- int size = sizeof(FILE_NAME_INFO) + sizeof(WCHAR) * MAX_PATH;
+ int size = sizeof(FILE_NAME_INFO) + sizeof(WCHAR) * (MAX_PATH - 1);
FILE_NAME_INFO *nameinfo;
WCHAR *p = NULL;
@@ -125,7 +127,7 @@ int is_cygpty(int fd)
if (GetFileType(h) != FILE_TYPE_PIPE) {
return 0;
}
- nameinfo = malloc(size);
+ nameinfo = malloc(size + sizeof(WCHAR));
if (nameinfo == NULL) {
return 0;
}
@@ -178,4 +180,6 @@ int is_cygpty_used(void)
return ret;
}
-/* vi:set ts=8 sts=4 sw=4 noet: */
+#endif /* _WIN32 */
+
+/* vim: set ts=4 sw=4: */