summaryrefslogtreecommitdiffstats
path: root/gcc
diff options
context:
space:
mode:
authorapbianco <apbianco@138bc75d-0d04-0410-961f-82ee72b054a4>2001-01-29 08:43:46 +0000
committerapbianco <apbianco@138bc75d-0d04-0410-961f-82ee72b054a4>2001-01-29 08:43:46 +0000
commitead85e11c6455b3cec94d7300dd1c712ac167f39 (patch)
treeb3bb87a6746fe2ddd3bf24b0bf009a09b73e11b6 /gcc
parentc87787ad2bd397153357e31d5289783d7a9ff149 (diff)
downloadppe42-gcc-ead85e11c6455b3cec94d7300dd1c712ac167f39.tar.gz
ppe42-gcc-ead85e11c6455b3cec94d7300dd1c712ac167f39.zip
2000-01-24 Jeff Sturm <jeff.sturm@commerceone.com>
* zextract.c (read_zip_archive): Read file_offset before writing zipd and consequently clobbering the header contents. (http://gcc.gnu.org/ml/gcc-patches/2001-01/msg02129.html) git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@39328 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc')
-rw-r--r--gcc/java/ChangeLog5
-rw-r--r--gcc/java/zextract.c4
2 files changed, 7 insertions, 2 deletions
diff --git a/gcc/java/ChangeLog b/gcc/java/ChangeLog
index 5a60bf92f1b..387e5169b45 100644
--- a/gcc/java/ChangeLog
+++ b/gcc/java/ChangeLog
@@ -1,3 +1,8 @@
+2000-01-24 Jeff Sturm <jeff.sturm@commerceone.com>
+
+ * zextract.c (read_zip_archive): Read file_offset before writing
+ zipd and consequently clobbering the header contents.
+
2001-01-27 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
* Make-lang.in: Remove all dependencies on defaults.h.
diff --git a/gcc/java/zextract.c b/gcc/java/zextract.c
index 2226eeac619..3985cd92001 100644
--- a/gcc/java/zextract.c
+++ b/gcc/java/zextract.c
@@ -323,6 +323,7 @@ read_zip_archive (zipf)
long uncompressed_size = makelong (&dir_ptr[4+C_UNCOMPRESSED_SIZE]);
long filename_length = makeword (&dir_ptr[4+C_FILENAME_LENGTH]);
long extra_field_length = makeword (&dir_ptr[4+C_EXTRA_FIELD_LENGTH]);
+ long file_offset = makelong (&dir_ptr[4+C_RELATIVE_OFFSET_LOCAL_HEADER]);
int unpadded_direntry_length;
if ((dir_ptr-zipf->central_directory)+filename_length+CREC_SIZE+4>zipf->dir_size)
return -1;
@@ -337,8 +338,7 @@ read_zip_archive (zipf)
#else
#define DIR_ALIGN sizeof(long)
#endif
- zipd->filestart = find_zip_file_start (zipf->fd,
- makelong (&dir_ptr[4+C_RELATIVE_OFFSET_LOCAL_HEADER]));
+ zipd->filestart = find_zip_file_start (zipf->fd, file_offset);
zipd->filename_offset = CREC_SIZE+4 - dir_last_pad;
unpadded_direntry_length
= zipd->filename_offset + zipd->filename_length + extra_field_length;
OpenPOWER on IntegriCloud