Mercurial > vim
changeset 12301:93155ae168fb v8.0.1030
patch 8.0.1030: MS-Windows: wrong size computation in is_cygpty()
commit https://github.com/vim/vim/commit/9e8dcf9d6fa15523800005a32d40cf0382178ab0
Author: Bram Moolenaar <Bram@vim.org>
Date: Thu Aug 31 21:35:45 2017 +0200
patch 8.0.1030: MS-Windows: wrong size computation in is_cygpty()
Problem: MS-Windows: wrong size computation in is_cygpty().
Solution: Compute the size properly. (Ken Takata)
author | Christian Brabandt <cb@256bit.org> |
---|---|
date | Thu, 31 Aug 2017 21:45:04 +0200 |
parents | 0214fd92157b |
children | 0aafbe6d646f |
files | src/iscygpty.c src/iscygpty.h src/version.c |
diffstat | 3 files changed, 22 insertions(+), 11 deletions(-) [+] |
line wrap: on
line diff
--- 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: */
--- a/src/iscygpty.h +++ b/src/iscygpty.h @@ -2,7 +2,7 @@ * iscygpty.h -- 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. @@ -30,7 +30,12 @@ #ifndef _ISCYGPTY_H #define _ISCYGPTY_H +#ifdef _WIN32 int is_cygpty(int fd); int is_cygpty_used(void); +#else +#define is_cygpty(fd) 0 +#define is_cygpty_used() 0 +#endif #endif /* _ISCYGPTY_H */