Hi, Potential buffer overflow was found in iscygpty. So, please include the attached patch which fixes the issue.
Regards, Ken Takata -- -- You received this message from the "vim_dev" maillist. Do not top-post! Type your reply below the text you are replying to. For more information, visit http://www.vim.org/maillist.php --- You received this message because you are subscribed to the Google Groups "vim_dev" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/d/optout.
# HG changeset patch # Parent 0c2762394aae1e38afb9a7a78a0c323bdd4da2bd diff --git a/src/iscygpty.c b/src/iscygpty.c --- 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: */ diff --git a/src/iscygpty.h b/src/iscygpty.h --- 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 */
