NetBSD-Bugs archive

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

Re: toolchain/46827: Cannot build the kernel, even Generic.



The following reply was made to PR toolchain/46827; it has been noted by GNATS.

From: christos%zoulas.com@localhost (Christos Zoulas)
To: gnats-bugs%NetBSD.org@localhost, toolchain-manager%netbsd.org@localhost, 
        gnats-admin%netbsd.org@localhost, netbsd-bugs%netbsd.org@localhost, 
rftmhmd%gmail.com@localhost
Cc: 
Subject: Re: toolchain/46827: Cannot build the kernel, even Generic.
Date: Fri, 24 Aug 2012 06:37:06 -0400

 On Aug 24,  7:20am, david%l8s.co.uk@localhost (David Laight) wrote:
 -- Subject: Re: toolchain/46827: Cannot build the kernel, even Generic.
 
 Try this:
 
 christos
 
 --- archive.c  2009/11/07 17:58:17     1.9
 +++ archive.c  2012/08/24 10:36:04
 @@ -1325,7 +1325,7 @@
    struct ar_hdr *hdr;
    char *temp, *temp1;
    bfd_size_type amt;
 -  char tmpbuf[11];
 +  char tmpbuf[1024];
  
    if (member && (member->flags & BFD_IN_MEMORY) != 0)
      {
 @@ -1365,7 +1365,8 @@
    strncpy (hdr->ar_fmag, ARFMAG, 2);
  
    /* Goddamned sprintf doesn't permit MAXIMUM field lengths.  */
 -  sprintf ((hdr->ar_date), "%-12ld", (long) status.st_mtime);
 +  sprintf (tmpbuf, "%-12ld", (long) status.st_mtime);
 +  memcpy(hdr->ar_date, tmpbuf, sizeof(hdr->ar_date));
  #ifdef HPUX_LARGE_AR_IDS
    /* HP has a very "special" way to handle UID/GID's with numeric values
       > 99999.  */
 @@ -1373,7 +1374,10 @@
      hpux_uid_gid_encode (hdr->ar_gid, (long) status.st_uid);
    else
  #endif
 -    sprintf ((hdr->ar_uid), "%ld", (long) status.st_uid);
 +  {
 +  sprintf (tmpbuf, "%ld", (long) status.st_uid);
 +  memcpy(hdr->ar_uid, tmpbuf, sizeof(hdr->ar_uid));
 +  }
  #ifdef HPUX_LARGE_AR_IDS
    /* HP has a very "special" way to handle UID/GID's with numeric values
       > 99999.  */
 @@ -1381,8 +1385,12 @@
      hpux_uid_gid_encode (hdr->ar_uid, (long) status.st_gid);
    else
  #endif
 -  sprintf ((hdr->ar_gid), "%ld", (long) status.st_gid);
 -  sprintf ((hdr->ar_mode), "%-8o", (unsigned int) status.st_mode);
 +  {
 +  sprintf (tmpbuf, "%ld", (long) status.st_gid);
 +  memcpy(hdr->ar_gid, tmpbuf, sizeof(hdr->ar_gid));
 +  }
 +  sprintf (tmpbuf, "%-8o", (unsigned int) status.st_mode);
 +  memcpy(hdr->ar_mode, tmpbuf, sizeof(hdr->ar_mode));
    sprintf (tmpbuf, "%-10ld", (long) status.st_size);
    memcpy(hdr->ar_size, tmpbuf, sizeof(hdr->ar_size));
    /* Correct for a lossage in sprintf whereby it null-terminates.  I cannot
 


Home | Main Index | Thread Index | Old Index