mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-06-19 18:24:00 +00:00
Don't trust st_size of a character device. This fixes using
/dev/stdin as an input when stdin is connected to a tty, for example. No test, because it's difficult to write a reasonably portable test for this. /dev/stdin isn't a character device when stdin is redirected from a file or connected to a pipe. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175542 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@ -322,9 +322,9 @@ error_code MemoryBuffer::getOpenFile(int FD, const char *Filename,
|
|||||||
return error_code(errno, posix_category());
|
return error_code(errno, posix_category());
|
||||||
}
|
}
|
||||||
|
|
||||||
// If this is a named pipe, we can't trust the size. Create the memory
|
// If this is a named pipe or character device, we can't trust the size.
|
||||||
// buffer by copying off the stream.
|
// Create the memory buffer by copying off the stream.
|
||||||
if (S_ISFIFO(FileInfo.st_mode)) {
|
if (S_ISFIFO(FileInfo.st_mode) || S_ISCHR(FileInfo.st_mode)) {
|
||||||
return getMemoryBufferForStream(FD, Filename, result);
|
return getMemoryBufferForStream(FD, Filename, result);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user