Merge changes 5548,5549 into donut
* changes: Better (and less) logging from backup. Add an extra null terminator. String8::unlockBuffer is supposed to be doing this, but it's not and I can't figure out why. This makes BackupHelperDispatcher able to read the keys correctly.
This commit is contained in:
@@ -87,6 +87,14 @@ readHeader_native(JNIEnv* env, jobject clazz, jobject headerObj, jobject fdObj)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if 0
|
||||||
|
LOGD("chunk header:");
|
||||||
|
LOGD(" headerSize=%d", flattenedHeader.headerSize);
|
||||||
|
LOGD(" version=0x%08x", flattenedHeader.version);
|
||||||
|
LOGD(" dataSize=%d", flattenedHeader.dataSize);
|
||||||
|
LOGD(" nameLength=%d", flattenedHeader.nameLength);
|
||||||
|
#endif
|
||||||
|
|
||||||
if (flattenedHeader.dataSize < 0 || flattenedHeader.nameLength < 0 ||
|
if (flattenedHeader.dataSize < 0 || flattenedHeader.nameLength < 0 ||
|
||||||
remainingHeader < flattenedHeader.nameLength) {
|
remainingHeader < flattenedHeader.nameLength) {
|
||||||
LOGW("Malformed V1 header remainingHeader=%d dataSize=%d nameLength=%d", remainingHeader,
|
LOGW("Malformed V1 header remainingHeader=%d dataSize=%d nameLength=%d", remainingHeader,
|
||||||
@@ -101,13 +109,12 @@ readHeader_native(JNIEnv* env, jobject clazz, jobject headerObj, jobject fdObj)
|
|||||||
}
|
}
|
||||||
|
|
||||||
amt = read(fd, buf, flattenedHeader.nameLength);
|
amt = read(fd, buf, flattenedHeader.nameLength);
|
||||||
|
buf[flattenedHeader.nameLength] = 0;
|
||||||
|
|
||||||
keyPrefix.unlockBuffer(flattenedHeader.nameLength);
|
keyPrefix.unlockBuffer(flattenedHeader.nameLength);
|
||||||
|
|
||||||
remainingHeader -= flattenedHeader.nameLength;
|
remainingHeader -= flattenedHeader.nameLength;
|
||||||
|
|
||||||
LOGD("remainingHeader=%d", remainingHeader);
|
|
||||||
|
|
||||||
if (remainingHeader > 0) {
|
if (remainingHeader > 0) {
|
||||||
lseek(fd, remainingHeader, SEEK_CUR);
|
lseek(fd, remainingHeader, SEEK_CUR);
|
||||||
}
|
}
|
||||||
@@ -183,6 +190,7 @@ writeHeader_native(JNIEnv* env, jobject clazz, jobject headerObj, jobject fdObj,
|
|||||||
|
|
||||||
header.headerSize = sizeof(chunk_header_v1) + header.nameLength + namePadding;
|
header.headerSize = sizeof(chunk_header_v1) + header.nameLength + namePadding;
|
||||||
header.version = VERSION_1_HEADER;
|
header.version = VERSION_1_HEADER;
|
||||||
|
header.dataSize = prevPos - (pos + header.headerSize);
|
||||||
|
|
||||||
lseek(fd, pos, SEEK_SET);
|
lseek(fd, pos, SEEK_SET);
|
||||||
err = write(fd, &header, sizeof(chunk_header_v1));
|
err = write(fd, &header, sizeof(chunk_header_v1));
|
||||||
|
|||||||
@@ -107,7 +107,10 @@ BackupDataWriter::WriteEntityHeader(const String8& key, size_t dataSize)
|
|||||||
} else {
|
} else {
|
||||||
k = key;
|
k = key;
|
||||||
}
|
}
|
||||||
LOGD("m_keyPrefix=%s key=%s k=%s", m_keyPrefix.string(), key.string(), k.string());
|
if (true) {
|
||||||
|
LOGD("Writing entity: prefix='%s' key='%s' dataSize=%d", m_keyPrefix.string(), key.string(),
|
||||||
|
dataSize);
|
||||||
|
}
|
||||||
|
|
||||||
entity_header_v1 header;
|
entity_header_v1 header;
|
||||||
ssize_t keyLen;
|
ssize_t keyLen;
|
||||||
|
|||||||
@@ -68,11 +68,15 @@ struct file_metadata_v1 {
|
|||||||
|
|
||||||
const static int CURRENT_METADATA_VERSION = 1;
|
const static int CURRENT_METADATA_VERSION = 1;
|
||||||
|
|
||||||
#if 1 // TEST_BACKUP_HELPERS
|
#if 1
|
||||||
|
#define LOGP(f, x...)
|
||||||
|
#else
|
||||||
|
#if TEST_BACKUP_HELPERS
|
||||||
#define LOGP(f, x...) printf(f "\n", x)
|
#define LOGP(f, x...) printf(f "\n", x)
|
||||||
#else
|
#else
|
||||||
#define LOGP(x...) LOGD(x)
|
#define LOGP(x...) LOGD(x)
|
||||||
#endif
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
const static int ROUND_UP[4] = { 0, 3, 2, 1 };
|
const static int ROUND_UP[4] = { 0, 3, 2, 1 };
|
||||||
|
|
||||||
@@ -349,7 +353,6 @@ back_up_files(int oldSnapshotFD, BackupDataWriter* dataStream, int newSnapshotFD
|
|||||||
|
|
||||||
err = stat(file, &st);
|
err = stat(file, &st);
|
||||||
if (err != 0) {
|
if (err != 0) {
|
||||||
LOGW("Error stating file %s", file);
|
|
||||||
r.deleted = true;
|
r.deleted = true;
|
||||||
} else {
|
} else {
|
||||||
r.deleted = false;
|
r.deleted = false;
|
||||||
|
|||||||
Reference in New Issue
Block a user