diff options
author | 2021-03-01 23:19:42 +0000 | |
---|---|---|
committer | 2021-03-01 23:19:42 +0000 | |
commit | 56d68f1e19ff848c889ecfa71d3a06340ff64892 (patch) | |
tree | 272372e9e82dd675d06054187c7f04b32fe71acc /gnu/usr.bin/perl/win32/perlglob.c | |
parent | Import perl-5.32.1 (diff) | |
download | wireguard-openbsd-56d68f1e19ff848c889ecfa71d3a06340ff64892.tar.xz wireguard-openbsd-56d68f1e19ff848c889ecfa71d3a06340ff64892.zip |
Fix merge issues, remove excess files - match perl-5.32.1 dist
OK sthen@
Diffstat (limited to 'gnu/usr.bin/perl/win32/perlglob.c')
-rw-r--r-- | gnu/usr.bin/perl/win32/perlglob.c | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/gnu/usr.bin/perl/win32/perlglob.c b/gnu/usr.bin/perl/win32/perlglob.c index 8add30f2a52..305fd3bee5c 100644 --- a/gnu/usr.bin/perl/win32/perlglob.c +++ b/gnu/usr.bin/perl/win32/perlglob.c @@ -20,6 +20,8 @@ #include <stdio.h> #include <io.h> #include <fcntl.h> +#include <assert.h> +#include <limits.h> #include <string.h> #include <windows.h> @@ -33,6 +35,7 @@ main(int argc, char *argv[]) char volname[MAX_PATH]; DWORD serial, maxname, flags; BOOL downcase = TRUE; + int fd; /* check out the file system characteristics */ if (GetFullPathName(".", MAX_PATH, root, &dummy)) { @@ -45,7 +48,13 @@ main(int argc, char *argv[]) } } - setmode(fileno(stdout), O_BINARY); + fd = fileno(stdout); + /* rare VC linker bug causes uninit global FILE *s + fileno() implementation in VC 2003 is 2 blind pointer derefs so it will + never return -1 error as POSIX says, to be compliant fail for -1 and + for absurdly high FDs which are actually pointers */ + assert(fd >= 0 && fd < SHRT_MAX); + setmode(fd, O_BINARY); for (i = 1; i < argc; i++) { len = strlen(argv[i]); if (downcase) |