summaryrefslogtreecommitdiff
path: root/tools/aapt/Resource.cpp
diff options
context:
space:
mode:
author Adam Lesinski <adamlesinski@google.com> 2016-07-18 17:01:14 -0700
committer Adam Lesinski <adamlesinski@google.com> 2016-07-18 17:07:41 -0700
commit526d73be4a3a2714fa6112769e16fb6cd0194451 (patch)
tree5b1f6862bed22be84c5547ad0bb2b2c317604b45 /tools/aapt/Resource.cpp
parent699e1bc74bb00d81b9680c826828678847caf205 (diff)
AAPT: Don't keep processing files that failed to be added
AAPT will continue ahead without reporting an error if a file failed to be added to the ResourceTable. This would cause crashes later when the file was assumed to be present. Bug:30200166 Change-Id: Ieb2daf97ccf0345153b6f4598d130a38d108c937
Diffstat (limited to 'tools/aapt/Resource.cpp')
-rw-r--r--tools/aapt/Resource.cpp13
1 files changed, 11 insertions, 2 deletions
diff --git a/tools/aapt/Resource.cpp b/tools/aapt/Resource.cpp
index e6407332bb90..a7878d196c15 100644
--- a/tools/aapt/Resource.cpp
+++ b/tools/aapt/Resource.cpp
@@ -326,13 +326,18 @@ static status_t makeFileResources(Bundle* bundle, const sp<AaptAssets>& assets,
}
String8 resPath = it.getPath();
resPath.convertToResPath();
- table->addEntry(SourcePos(it.getPath(), 0), String16(assets->getPackage()),
+ status_t result = table->addEntry(SourcePos(it.getPath(), 0),
+ String16(assets->getPackage()),
type16,
baseName,
String16(resPath),
NULL,
&it.getParams());
- assets->addResource(it.getLeafName(), resPath, it.getFile(), type8);
+ if (result != NO_ERROR) {
+ hasErrors = true;
+ } else {
+ assets->addResource(it.getLeafName(), resPath, it.getFile(), type8);
+ }
}
return hasErrors ? STATUST(UNKNOWN_ERROR) : NO_ERROR;
@@ -1370,6 +1375,10 @@ status_t buildResources(Bundle* bundle, const sp<AaptAssets>& assets, sp<ApkBuil
}
}
+ if (hasErrors) {
+ return UNKNOWN_ERROR;
+ }
+
// --------------------------------------------------------------------
// Assignment of resource IDs and initial generation of resource table.
// --------------------------------------------------------------------