Commit graph

8 commits

Author SHA1 Message Date
Dmitriy Ivanov
40b52b2c88 Add close_file flag to OpenArchiveFd()
* We should be able to keep fd alive after CloseArchive()

Change-Id: I1aa2c039bb2a590ae72f256acc9ba5401c2c59b1
2015-01-30 17:57:13 -08:00
Piotr Jastrzebski
ecccc5ad93 Replace char* with ZipEntryName in ziparchive API.
It's important because entry names can be encoded in UTF-8 and can have \0
character in the middle.
Use vector instead of char* for prefix in IterationHandle.

Bug: 16162465
Change-Id: Ie34c8d7c6231cc258530c22bdde5542895213649
2014-08-15 12:39:45 +01:00
Piotr Jastrzebski
bd0a74854e Revert "Make sure that names of all entries have the same encoding."
This reverts commit 6a7f4bb79d.

Change-Id: Id4f5b601ff0b9d82ce2c9beeb9162eba9594b3a7
2014-08-13 09:49:25 +00:00
Piotr Jastrzebski
6a7f4bb79d Make sure that names of all entries have the same encoding.
Add new public method to allow checkisc if an archive has entry names encoded in
UTF-8. If not then they will be encoded in IBM PC character encoding.

Bug: 16162465
Change-Id: I4468d76accca8a9b0b31cae8d43399ffc22cad42
2014-08-13 09:58:16 +01:00
Piotr Jastrzebski
79c8b34f36 Add EndIteration method to free memory allocated
in StartIteration. This method should always be called when the
iteration is over to make sure that we don't leak memory.

Change-Id: I5205c754dfafbab9bb5f06003c3663d2ec4e8a35
2014-08-11 07:58:00 +01:00
Narayan Kamath
00a258cec7 Fix ExtractEntryToFile.
We would always write uncompressed data at offset 0 instead
of the current filedescriptor offset.

Also adds a unit-test & a clarifying comment on the API.

Change-Id: If44757e96dde504ce63d81b4dec7115fc6f6d5fb
2013-12-13 17:56:57 +00:00
Narayan Kamath
574c3b35df Fix Mac OS build for libziparchive.
BSD off_t are implicitly 64 bit so the platform
doesn't define off64_t.

Change-Id: I51cbe94ead01d2d6bc7c5010d9472487bee7c2d3
2013-12-06 18:27:53 +00:00
Narayan Kamath
7462f02f82 Unify zipfile implementations : Step 1.
Extract zip file processing logic from libdvm into a
standalone library.

This library is a stricter than the libdvm library in
several ways:
- Duplicate zip entry names are now disallowed. Files with
  such entries will fail to parse.
- We now verify CD file size information with the individual
  file header information. (This was pointed out as a deficiency
  of this implementation in past discussions.)
- We also add support for crc checking, which means we might
  need to parse the optional data descriptor footer (if one
  exists).

We also provide an API for iterating over the entries of
a zip file. This library is optimized for two use cases :

- Lookup for a single entry in the file, with the intention
  of processing or extracting the data associated with that
  entry
- Iterating over all entries in a file *and* processing
  / extracting their data.

Change-Id: Ia87de6184ef753cc470b0af755c47a4f92ac8198
2013-12-04 13:28:40 +00:00