Sourceware Bugzilla – Attachment 6490 Details for
Bug 14302
ar mishandles 4GB files
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
A fix for 'ar tv', 'ar p' and 'ar x'
patch.diff (text/plain), 2.85 KB, created by
Francois Gouget
on 2012-06-27 09:33:48 UTC
(
hide
)
Description:
A fix for 'ar tv', 'ar p' and 'ar x'
Filename:
MIME Type:
Creator:
Francois Gouget
Created:
2012-06-27 09:33:48 UTC
Size:
2.85 KB
patch
obsolete
>commit 054182bb8eafa526180e5960f824819abca15599 >Author: Francois Gouget <fgouget@codeweavers.com> >Date: Fri May 18 11:39:41 2012 +0200 > > PR binutils/14302 > * bucomm.c (print_arelt_descr): Correctly report the archive size field (for 'ar tv'). > * ar.c (print_contents): Use correct types for archive element sizes (for 'ar p'). > (extract_file): Likewise (for 'ar x'). > >diff --git a/binutils/ar.c b/binutils/ar.c >index 13637f4..6ee1dd0 100644 >--- a/binutils/ar.c >+++ b/binutils/ar.c >@@ -937,10 +937,10 @@ open_inarch (const char *archive_filename, const char *file) > static void > print_contents (bfd *abfd) > { >- size_t ncopied = 0; >+ bfd_size_type ncopied = 0; > char *cbuf = (char *) xmalloc (BUFSIZE); > struct stat buf; >- size_t size; >+ bfd_size_type size; > if (bfd_stat_arch_elt (abfd, &buf) != 0) > /* xgettext:c-format */ > fatal (_("internal stat error on %s"), bfd_get_filename (abfd)); >@@ -954,12 +954,12 @@ print_contents (bfd *abfd) > while (ncopied < size) > { > >- size_t nread; >- size_t tocopy = size - ncopied; >+ bfd_size_type nread; >+ bfd_size_type tocopy = size - ncopied; > if (tocopy > BUFSIZE) > tocopy = BUFSIZE; > >- nread = bfd_bread (cbuf, (bfd_size_type) tocopy, abfd); >+ nread = bfd_bread (cbuf, tocopy, abfd); > if (nread != tocopy) > /* xgettext:c-format */ > fatal (_("%s is not a valid archive"), >@@ -990,9 +990,9 @@ extract_file (bfd *abfd) > { > FILE *ostream; > char *cbuf = (char *) xmalloc (BUFSIZE); >- size_t nread, tocopy; >- size_t ncopied = 0; >- size_t size; >+ bfd_size_type nread, tocopy; >+ bfd_size_type ncopied = 0; >+ bfd_size_type size; > struct stat buf; > > if (bfd_stat_arch_elt (abfd, &buf) != 0) >@@ -1027,7 +1027,7 @@ extract_file (bfd *abfd) > if (tocopy > BUFSIZE) > tocopy = BUFSIZE; > >- nread = bfd_bread (cbuf, (bfd_size_type) tocopy, abfd); >+ nread = bfd_bread (cbuf, tocopy, abfd); > if (nread != tocopy) > /* xgettext:c-format */ > fatal (_("%s is not a valid archive"), >diff --git a/binutils/bucomm.c b/binutils/bucomm.c >index 86cb6e4..bb3fb3f 100644 >--- a/binutils/bucomm.c >+++ b/binutils/bucomm.c >@@ -427,16 +427,18 @@ print_arelt_descr (FILE *file, bfd *abfd, bfd_boolean verbose) > char timebuf[40]; > time_t when = buf.st_mtime; > const char *ctime_result = (const char *) ctime (&when); >+ bfd_size_type size; > > /* POSIX format: skip weekday and seconds from ctime output. */ > sprintf (timebuf, "%.12s %.4s", ctime_result + 4, ctime_result + 20); > > mode_string (buf.st_mode, modebuf); > modebuf[10] = '\0'; >+ size = buf.st_size; > /* POSIX 1003.2/D11 says to skip first character (entry type). */ >- fprintf (file, "%s %ld/%ld %6ld %s ", modebuf + 1, >+ fprintf (file, "%s %ld/%ld %6" BFD_VMA_FMT "u %s ", modebuf + 1, > (long) buf.st_uid, (long) buf.st_gid, >- (long) buf.st_size, timebuf); >+ size, timebuf); > } > } >
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 14302
:
6488
|
6489
| 6490