From b677b8c0b935ebe9c4145fad3fabc9f1f753b830 Mon Sep 17 00:00:00 2001 From: Alan Modra Date: Thu, 27 Oct 2005 03:35:30 +0000 Subject: [PATCH] * hppabsd-core.c (hppabsd_core_core_file_p): Use bfd_stat, not fstat. * sco5-core.c (sco5_core_file_p): Likewise. * trad-core.c (trad_unix_core_file_p): Likewise. --- bfd/ChangeLog | 4 ++++ bfd/hppabsd-core.c | 11 +++-------- bfd/sco5-core.c | 11 +++-------- bfd/trad-core.c | 11 +++-------- 4 files changed, 13 insertions(+), 24 deletions(-) diff --git a/bfd/ChangeLog b/bfd/ChangeLog index 0a3b2484c2..deeea7efdb 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,5 +1,9 @@ 2005-10-27 Alan Modra + * hppabsd-core.c (hppabsd_core_core_file_p): Use bfd_stat, not fstat. + * sco5-core.c (sco5_core_file_p): Likewise. + * trad-core.c (trad_unix_core_file_p): Likewise. + * cache.c: Reorganize file to avoid forward reference. 2005-10-26 Alan Modra diff --git a/bfd/hppabsd-core.c b/bfd/hppabsd-core.c index b17acc699f..894d244bbc 100644 --- a/bfd/hppabsd-core.c +++ b/bfd/hppabsd-core.c @@ -1,5 +1,5 @@ /* BFD back-end for HPPA BSD core files. - Copyright 1993, 1994, 1995, 1998, 1999, 2001, 2002, 2003, 2004 + Copyright 1993, 1994, 1995, 1998, 1999, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. This file is part of BFD, the Binary File Descriptor library. @@ -137,16 +137,11 @@ hppabsd_core_core_file_p (abfd) /* Sanity checks. Make sure the size of the core file matches the the size computed from information within the core itself. */ { - FILE *stream = bfd_cache_lookup (abfd); struct stat statbuf; - if (stream == NULL) + if (bfd_stat (abfd, &statbuf) < 0) return NULL; - if (fstat (fileno (stream), &statbuf) < 0) - { - bfd_set_error (bfd_error_system_call); - return NULL; - } + if (NBPG * (UPAGES + u.u_dsize + u.u_ssize) > statbuf.st_size) { bfd_set_error (bfd_error_file_truncated); diff --git a/bfd/sco5-core.c b/bfd/sco5-core.c index e85c4d3793..f09eadafe8 100644 --- a/bfd/sco5-core.c +++ b/bfd/sco5-core.c @@ -1,5 +1,5 @@ /* BFD back end for SCO5 core files (U-area and raw sections) - Copyright 1998, 1999, 2000, 2001, 2002, 2003, 2004 + Copyright 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. Written by Jouke Numan @@ -126,16 +126,11 @@ sco5_core_file_p (abfd) /* Read coreoffsets region at end of core (see core(FP)). */ { - FILE *stream = bfd_cache_lookup (abfd); struct stat statbuf; - if (stream == NULL) + if (bfd_stat (abfd, &statbuf) < 0) return NULL; - if (fstat (fileno (stream), &statbuf) < 0) - { - bfd_set_error (bfd_error_system_call); - return NULL; - } + coresize = statbuf.st_size; } /* Last long in core is sizeof struct coreoffsets, read it */ diff --git a/bfd/trad-core.c b/bfd/trad-core.c index c958683344..2f8c9f9ca5 100644 --- a/bfd/trad-core.c +++ b/bfd/trad-core.c @@ -1,6 +1,6 @@ /* BFD back end for traditional Unix core files (U-area and raw sections) Copyright 1988, 1989, 1991, 1992, 1993, 1994, 1995, 1996, 1998, 1999, - 2000, 2001, 2002, 2003, 2004 + 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. Written by John Gilmore of Cygnus Support. @@ -109,16 +109,11 @@ trad_unix_core_file_p (abfd) /* Check that the size claimed is no greater than the file size. */ { - FILE *stream = bfd_cache_lookup (abfd); struct stat statbuf; - if (stream == NULL) + if (bfd_stat (abfd, &statbuf) < 0) return 0; - if (fstat (fileno (stream), &statbuf) < 0) - { - bfd_set_error (bfd_error_system_call); - return 0; - } + if ((unsigned long) (NBPG * (UPAGES + u.u_dsize #ifdef TRAD_CORE_DSIZE_INCLUDES_TSIZE - u.u_tsize -- 2.34.1