Skip to content

Commit

Permalink
patch 8.0.1030: MS-Windows: wrong size computation in is_cygpty()
Browse files Browse the repository at this point in the history
Problem:    MS-Windows: wrong size computation in is_cygpty().
Solution:   Compute the size properly. (Ken Takata)
  • Loading branch information
brammool committed Aug 31, 2017
1 parent da73253 commit 9e8dcf9
Show file tree
Hide file tree
Showing 3 changed files with 22 additions and 11 deletions.
24 changes: 14 additions & 10 deletions src/iscygpty.c
Expand Up @@ -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.
Expand All @@ -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>
Expand Down Expand Up @@ -60,19 +62,19 @@
//#define USE_DYNFILEID //#define USE_DYNFILEID
#ifdef USE_DYNFILEID #ifdef USE_DYNFILEID
typedef BOOL (WINAPI *pfnGetFileInformationByHandleEx)( typedef BOOL (WINAPI *pfnGetFileInformationByHandleEx)(
HANDLE hFile, HANDLE hFile,
FILE_INFO_BY_HANDLE_CLASS FileInformationClass, FILE_INFO_BY_HANDLE_CLASS FileInformationClass,
LPVOID lpFileInformation, LPVOID lpFileInformation,
DWORD dwBufferSize DWORD dwBufferSize
); );
static pfnGetFileInformationByHandleEx pGetFileInformationByHandleEx = NULL; static pfnGetFileInformationByHandleEx pGetFileInformationByHandleEx = NULL;


# ifndef USE_FILEEXTD # ifndef USE_FILEEXTD
static BOOL WINAPI stub_GetFileInformationByHandleEx( static BOOL WINAPI stub_GetFileInformationByHandleEx(
HANDLE hFile, HANDLE hFile,
FILE_INFO_BY_HANDLE_CLASS FileInformationClass, FILE_INFO_BY_HANDLE_CLASS FileInformationClass,
LPVOID lpFileInformation, LPVOID lpFileInformation,
DWORD dwBufferSize DWORD dwBufferSize
) )
{ {
return FALSE; return FALSE;
Expand Down Expand Up @@ -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;


Expand All @@ -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;
} }
Expand Down Expand Up @@ -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: */
7 changes: 6 additions & 1 deletion src/iscygpty.h
Expand Up @@ -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.
Expand Down Expand Up @@ -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 */
2 changes: 2 additions & 0 deletions src/version.c
Expand Up @@ -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,
/**/ /**/
Expand Down

0 comments on commit 9e8dcf9

Please sign in to comment.