0
0
mirror of https://github.com/vim/vim.git synced 2025-10-13 06:54:15 -04:00

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)
This commit is contained in:
Bram Moolenaar
2017-08-31 21:35:45 +02:00
parent da73253a0b
commit 9e8dcf9d6f
3 changed files with 22 additions and 11 deletions

View File

@@ -2,7 +2,7 @@
* iscygpty.c -- part of ptycheck * iscygpty.c -- part of ptycheck
* https://github.com/k-takata/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 * You can redistribute it and/or modify it under the terms of either
* the MIT license (as described below) or the Vim license. * the MIT license (as described below) or the Vim license.
@@ -27,6 +27,8 @@
* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/ */
#ifdef _WIN32
#include <ctype.h> #include <ctype.h>
#include <io.h> #include <io.h>
#include <wchar.h> #include <wchar.h>
@@ -111,7 +113,7 @@ int is_cygpty(int fd)
return 0; return 0;
#else #else
HANDLE h; 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; FILE_NAME_INFO *nameinfo;
WCHAR *p = NULL; WCHAR *p = NULL;
@@ -125,7 +127,7 @@ int is_cygpty(int fd)
if (GetFileType(h) != FILE_TYPE_PIPE) { if (GetFileType(h) != FILE_TYPE_PIPE) {
return 0; return 0;
} }
nameinfo = malloc(size); nameinfo = malloc(size + sizeof(WCHAR));
if (nameinfo == NULL) { if (nameinfo == NULL) {
return 0; return 0;
} }
@@ -178,4 +180,6 @@ int is_cygpty_used(void)
return ret; return ret;
} }
/* vi:set ts=8 sts=4 sw=4 noet: */ #endif /* _WIN32 */
/* vim: set ts=4 sw=4: */

View File

@@ -2,7 +2,7 @@
* iscygpty.h -- part of ptycheck * iscygpty.h -- part of ptycheck
* https://github.com/k-takata/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 * You can redistribute it and/or modify it under the terms of either
* the MIT license (as described below) or the Vim license. * the MIT license (as described below) or the Vim license.
@@ -30,7 +30,12 @@
#ifndef _ISCYGPTY_H #ifndef _ISCYGPTY_H
#define _ISCYGPTY_H #define _ISCYGPTY_H
#ifdef _WIN32
int is_cygpty(int fd); int is_cygpty(int fd);
int is_cygpty_used(void); int is_cygpty_used(void);
#else
#define is_cygpty(fd) 0
#define is_cygpty_used() 0
#endif
#endif /* _ISCYGPTY_H */ #endif /* _ISCYGPTY_H */

View File

@@ -769,6 +769,8 @@ static char *(features[]) =
static int included_patches[] = static int included_patches[] =
{ /* Add new patch number below this line */ { /* Add new patch number below this line */
/**/
1030,
/**/ /**/
1029, 1029,
/**/ /**/