mirror of
https://github.com/vim/vim
synced 2025-03-31 06:56:44 +02: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:
parent
da73253a0b
commit
9e8dcf9d6f
3 changed files with 22 additions and 11 deletions
|
@ -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: */
|
||||
|
|
|
@ -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 */
|
||||
|
|
|
@ -769,6 +769,8 @@ static char *(features[]) =
|
|||
|
||||
static int included_patches[] =
|
||||
{ /* Add new patch number below this line */
|
||||
/**/
|
||||
1030,
|
||||
/**/
|
||||
1029,
|
||||
/**/
|
||||
|
|
Loading…
Add table
Reference in a new issue