summaryrefslogtreecommitdiffstats
path: root/applypatch/bspatch.c
diff options
context:
space:
mode:
authorDoug Zongker <dougz@google.com>2014-05-16 17:03:24 +0200
committerAndroid Git Automerger <android-git-automerger@android.com>2014-05-16 17:03:24 +0200
commitd4592694b41d5f8309d98cd3312b5486216cc685 (patch)
tree65f33edad5871413e4c6aba9dd129de96cf9ae77 /applypatch/bspatch.c
parentam d27aa76a: Merge "Support BGRA framebuffer" (diff)
parentMerge "fix vulnerability in bspatch" (diff)
downloadandroid_bootable_recovery-d4592694b41d5f8309d98cd3312b5486216cc685.tar
android_bootable_recovery-d4592694b41d5f8309d98cd3312b5486216cc685.tar.gz
android_bootable_recovery-d4592694b41d5f8309d98cd3312b5486216cc685.tar.bz2
android_bootable_recovery-d4592694b41d5f8309d98cd3312b5486216cc685.tar.lz
android_bootable_recovery-d4592694b41d5f8309d98cd3312b5486216cc685.tar.xz
android_bootable_recovery-d4592694b41d5f8309d98cd3312b5486216cc685.tar.zst
android_bootable_recovery-d4592694b41d5f8309d98cd3312b5486216cc685.zip
Diffstat (limited to 'applypatch/bspatch.c')
-rw-r--r--applypatch/bspatch.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/applypatch/bspatch.c b/applypatch/bspatch.c
index 2e80f81d0..1dc7ab10b 100644
--- a/applypatch/bspatch.c
+++ b/applypatch/bspatch.c
@@ -205,6 +205,11 @@ int ApplyBSDiffPatchMem(const unsigned char* old_data, ssize_t old_size,
ctrl[1] = offtin(buf+8);
ctrl[2] = offtin(buf+16);
+ if (ctrl[0] < 0 || ctrl[1] < 0) {
+ printf("corrupt patch (negative byte counts)\n");
+ return 1;
+ }
+
// Sanity check
if (newpos + ctrl[0] > *new_size) {
printf("corrupt patch (new file overrun)\n");