From 5d1ff72c5612d3ae9b21bf9c46d60c1376ef5955 Mon Sep 17 00:00:00 2001 From: pancake Date: Wed, 29 Apr 2015 23:55:03 +0200 Subject: [PATCH] Fix #2453 - Fix crash in Java CLASS parser --- shlr/java/class.c | 3 +++ sys/rebuild.sh | 41 +++++++++++++++++++++++++++++++++++++++++ 2 files changed, 44 insertions(+) create mode 100755 sys/rebuild.sh diff --git a/shlr/java/class.c b/shlr/java/class.c index 25e85fb079..e99f41947c 100644 --- a/shlr/java/class.c +++ b/shlr/java/class.c @@ -2167,6 +2167,9 @@ R_API ut64 r_bin_java_parse_methods (RBinJavaObj *bin, const ut64 offset, const r_list_free (bin->methods_list); bin->methods_list = r_list_newf (r_bin_java_fmtype_free); + if (offset + 2 >= len) { + return 0LL; + } bin->methods_offset = offset; bin->methods_count = R_BIN_JAVA_USHORT (fm_buf, 0); adv += 2; diff --git a/sys/rebuild.sh b/sys/rebuild.sh new file mode 100755 index 0000000000..1f04630fe5 --- /dev/null +++ b/sys/rebuild.sh @@ -0,0 +1,41 @@ +#!/bin/sh + +Rebuild() { + cd $1 + make clean + make -j8 || exit 1 + cd - +} + +RebuildJava() { + Rebuild shlr/java + Rebuild libr/asm + Rebuild libr/bin +} + +RebuildCapstone() { + Rebuild shlr/capstone + Rebuild libr/asm + Rebuild libr/anal +} + +RebuildSdb() { + Rebuild shlr/sdb + Rebuild libr/db +} + +RebuildBin() { + Rebuild libr/bin + Rebuild libr/core +} + +case "$1" in +bin) RebuildBin ; ;; +sdb) RebuildSdb ; ;; +bin) RebuildBin ; ;; +java) RebuildJava ; ;; +capstone|cs) RebuildCapstone ; ;; +*) + echo "Usage: sys/rebuild.sh [java|capstone|sdb]" + ;; +esac