OSDN Git Service

Don't assume that we're at start of file at ctor time
authorChristopher Tate <ctate@google.com>
Fri, 21 Feb 2014 20:50:21 +0000 (12:50 -0800)
committerChristopher Tate <ctate@google.com>
Fri, 21 Feb 2014 20:58:04 +0000 (12:58 -0800)
commitb048c33d5bdaec747195dfedf971d4d9155f5000
tree0a69524ee0627aea73c245f83f2d0301882143e3
parent1a405db22a2ade6b745f3e1cf93ba0c54b048d95
Don't assume that we're at start of file at ctor time

BackupDataReader / BackupDataWriter were implicitly assuming that when
instantiated, the underlying fd was positioned at start-of-file.  If one
tried to e.g. open an existing data stream to append further data to it,
things might randomly fail (at read time, possibly when consuming the
stream later) due to incorrect alignment of the data entities: the
appending writer would assume that no padding was needed to achieve
correct alignment, and this might easily be false.

Now the underlying native reader/writer helpers recognize the true
position within the file when constructed, and as a result it's now
safe to e.g. construct a BackupDataOutput for an existing file and
then append to it.

Change-Id: If0484921e687852f923a4b4efabff573a6c16981
core/java/com/android/internal/backup/LocalTransport.java
libs/androidfw/BackupData.cpp