aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Kenner <kenner@gcc.gnu.org>1995-02-21 06:16:06 -0500
committerRichard Kenner <kenner@gcc.gnu.org>1995-02-21 06:16:06 -0500
commit56070e550394bedc6ac20152d4e09b9c66bd8d63 (patch)
tree699d1ef437f73b0fe118ebfe41879605470326a9
parentbc17186d3aaebbad5cd68d49d0ef000dcb27cc8c (diff)
downloadgcc-56070e550394bedc6ac20152d4e09b9c66bd8d63.zip
gcc-56070e550394bedc6ac20152d4e09b9c66bd8d63.tar.gz
gcc-56070e550394bedc6ac20152d4e09b9c66bd8d63.tar.bz2
(read_specs): Use length read when inserting zero.
From-SVN: r8979
-rw-r--r--gcc/gcc.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/gcc/gcc.c b/gcc/gcc.c
index cc0e45b..afa20ef 100644
--- a/gcc/gcc.c
+++ b/gcc/gcc.c
@@ -1110,6 +1110,7 @@ read_specs (filename)
char *filename;
{
int desc;
+ int readlen;
struct stat statbuf;
char *buffer;
register char *p;
@@ -1126,8 +1127,10 @@ read_specs (filename)
/* Read contents of file into BUFFER. */
buffer = xmalloc ((unsigned) statbuf.st_size + 1);
- read (desc, buffer, (unsigned) statbuf.st_size);
- buffer[statbuf.st_size] = 0;
+ readlen = read (desc, buffer, (unsigned) statbuf.st_size);
+ if (readlen < 0)
+ pfatal_with_name (filename);
+ buffer[readlen] = 0;
close (desc);
/* Scan BUFFER for specs, putting them in the vector. */