]> granicus.if.org Git - vim/commitdiff
patch 8.0.1030: MS-Windows: wrong size computation in is_cygpty() v8.0.1030
authorBram Moolenaar <Bram@vim.org>
Thu, 31 Aug 2017 19:35:45 +0000 (21:35 +0200)
committerBram Moolenaar <Bram@vim.org>
Thu, 31 Aug 2017 19:35:45 +0000 (21:35 +0200)
Problem:    MS-Windows: wrong size computation in is_cygpty().
Solution:   Compute the size properly. (Ken Takata)

src/iscygpty.c
src/iscygpty.h
src/version.c

index d7037c56fcf0ab51410b0c3b6a0d5fa271c2de4b..722f88f2f46dcbb8489fb2600893373c4d49009d 100644 (file)
@@ -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>
 //#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: */
index fbca4b4095a56376068ed7bb3ebb059a9ce05f9f..82fd0affbd4875c0e283ae4f617c958869328430 100644 (file)
@@ -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.
 #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 */
index fbf175efdb0e10b306814a335d44a241eb4d8c76..d5257a7579a7af65e996ec85dd1df6eb7c398c3e 100644 (file)
@@ -769,6 +769,8 @@ static char *(features[]) =
 
 static int included_patches[] =
 {   /* Add new patch number below this line */
+/**/
+    1030,
 /**/
     1029,
 /**/