bug-binutils
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Bug binutils/136] BFD crashes when cached file can't be reopened


From: nickc at redhat dot com
Subject: [Bug binutils/136] BFD crashes when cached file can't be reopened
Date: 5 May 2004 15:48:16 -0000

------- Additional Comments From nickc at redhat dot com  2004-05-05 15:48 
-------
Subject: Re:  New: BFD crashes when cached file can't be
 reopened

Hi Mikulas,

>BFD keeps cache of files and has only few files open at a time. When the file 
>is
>not in open-descriptor cache, BFD reopens it. BFD crashes trying to work with
>NULL FILE * pointer, when reopening file fails.
>  
>
Actually, since bfd_cache_lookup() no longer returns NULL we can remove 
the pieces of code that used to check for this.  Hence I am also going 
to apply this patch.

Cheers
  Nick

bfd/ChangeLog
2004-05-05  Nick Clifton  <address@hidden>

    PR/136
    * hppabsd-core.c (hppabsd_core_core_file_p): Do not check result
    of bfd_cache_lookup().
    * sco5-core.c (sco5_core_file_p): Likewise.
    * trad-core.c (trad_unix_core_file_p): Likewise.


Index: bfd/hppabsd-core.c
===================================================================
RCS file: /cvs/src/src/bfd/hppabsd-core.c,v
retrieving revision 1.11
diff -c -3 -p -r1.11 hppabsd-core.c
*** bfd/hppabsd-core.c  15 Mar 2004 14:21:42 -0000      1.11
--- bfd/hppabsd-core.c  5 May 2004 15:44:29 -0000
*************** hppabsd_core_core_file_p (abfd)
*** 139,145 ****
    {
      FILE *stream = bfd_cache_lookup (abfd);
      struct stat statbuf;
!     if (stream == NULL || fstat (fileno (stream), &statbuf) < 0)
        {
        bfd_set_error (bfd_error_system_call);
        return NULL;
--- 139,146 ----
    {
      FILE *stream = bfd_cache_lookup (abfd);
      struct stat statbuf;
! 
!     if (fstat (fileno (stream), &statbuf) < 0)
        {
        bfd_set_error (bfd_error_system_call);
        return NULL;
Index: bfd/sco5-core.c
===================================================================
RCS file: /cvs/src/src/bfd/sco5-core.c,v
retrieving revision 1.11
diff -c -3 -p -r1.11 sco5-core.c
*** bfd/sco5-core.c     15 Mar 2004 14:21:43 -0000      1.11
--- bfd/sco5-core.c     5 May 2004 15:44:29 -0000
*************** sco5_core_file_p (abfd)
*** 123,135 ****
    char *secname;
    flagword flags;
  
!   /* Read coreoffsets region at end of core (see core(FP)) */
  
    {
      FILE *stream = bfd_cache_lookup (abfd);
      struct stat statbuf;
!     if (stream == NULL)
!       return NULL;
      if (fstat (fileno (stream), &statbuf) < 0)
        {
        bfd_set_error (bfd_error_system_call);
--- 123,134 ----
    char *secname;
    flagword flags;
  
!   /* Read coreoffsets region at end of core (see core(FP)).  */
  
    {
      FILE *stream = bfd_cache_lookup (abfd);
      struct stat statbuf;
! 
      if (fstat (fileno (stream), &statbuf) < 0)
        {
        bfd_set_error (bfd_error_system_call);
Index: bfd/trad-core.c
===================================================================
RCS file: /cvs/src/src/bfd/trad-core.c,v
retrieving revision 1.16
diff -c -3 -p -r1.16 trad-core.c
*** bfd/trad-core.c     15 Mar 2004 14:21:43 -0000      1.16
--- bfd/trad-core.c     5 May 2004 15:44:29 -0000
*************** trad_unix_core_file_p (abfd)
*** 111,118 ****
    {
      FILE *stream = bfd_cache_lookup (abfd);
      struct stat statbuf;
!     if (stream == NULL)
!       return 0;
      if (fstat (fileno (stream), &statbuf) < 0)
        {
        bfd_set_error (bfd_error_system_call);
--- 111,117 ----
    {
      FILE *stream = bfd_cache_lookup (abfd);
      struct stat statbuf;
! 
      if (fstat (fileno (stream), &statbuf) < 0)
        {
        bfd_set_error (bfd_error_system_call);


-- 


http://sources.redhat.com/bugzilla/show_bug.cgi?id=136

------- You are receiving this mail because: -------
You are on the CC list for the bug, or are watching someone who is.




reply via email to

[Prev in Thread] Current Thread [Next in Thread]