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 */
--- a/src/version.c
+++ b/src/version.c
@@ -770,6 +770,8 @@ static char *(features[]) =
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    1030,
+/**/
     1029,
 /**/
     1028,