SF bug #887946, segfault if redirecting directory

Also provide a warning if a directory is passed on the command line.
Add minimal command line test.

Will backport.
This commit is contained in:
Neal Norwitz 2005-10-03 00:54:56 +00:00
parent d157b1d237
commit 11bd119226
4 changed files with 70 additions and 0 deletions

View file

@ -947,6 +947,15 @@ _PySys_Init(void)
m = Py_InitModule3("sys", sys_methods, sys_doc);
sysdict = PyModule_GetDict(m);
{
/* XXX: does this work on Win/Win64? (see posix_fstat) */
struct stat sb;
if (fstat(fileno(stdin), &sb) == 0 &&
S_ISDIR(sb.st_mode)) {
Py_FatalError("<stdin> is a directory");
}
}
/* Closing the standard FILE* if sys.std* goes aways causes problems
* for embedded Python usages. Closing them when somebody explicitly
* invokes .close() might be possible, but the FAQ promises they get