Fix some asan issues with latest rbin changes in dex

This commit is contained in:
pancake 2015-11-09 18:51:45 +01:00
parent 8d9af55342
commit e37ada9096
3 changed files with 8 additions and 6 deletions

View File

@ -189,6 +189,7 @@ static RList* strings (RBinFile *arch) {
ptr->string = malloc (len + 1);
r_buf_read_at (bin->b, bin->strings[i]+dex_uleb128_len (buf),
(ut8*)ptr->string, len);
ptr->string[len] = 0;
ptr->vaddr = ptr->paddr = bin->strings[i];
ptr->size = len;
ptr->length = len;
@ -554,10 +555,10 @@ static int dex_loadcode(RBinFile *arch, RBinDexObj *bin) {
char *method_name = dex_method_name (bin, i);
dprintf ("import %d (%s)\n", i, method_name);
if (method_name && *method_name) {
RBinSymbol *sym = R_NEW0 (RBinSymbol);
RBinImport *sym = R_NEW0 (RBinImport);
sym->name = strdup (method_name);
sym->type = r_str_const ("FUNC");
sym->paddr = sym->vaddr = 0; // UNKNOWN
//sym->paddr /= sym->vaddr = 0; // UNKNOWN
r_list_append (bin->imports_list, sym);
}
free (method_name);

View File

@ -298,7 +298,7 @@ static int bin_strings(RCore *r, int mode, int va) {
r_meta_add (r->anal, R_META_TYPE_STRING, addr,
addr + string->size, string->string);
f_name = strdup (string->string);
r_name_filter (f_name, R_FLAG_NAME_SIZE);
r_name_filter (f_name, -1);
if (r->bin->prefix) {
str = r_str_newf ("%s.str.%s", r->bin->prefix, f_name);
} else {
@ -1060,7 +1060,7 @@ static void snInit(RCore *r, SymName *sn, RBinSymbol *sym, const char *lang) {
sn->methname = r_str_newf ("%s::%s", sn->classname, sym->name);
sn->methflag = r_str_newf ("sym.%s.%s", sn->classname, sn->name);
r_name_filter (sn->methflag, MAXFLAG_LEN);
r_name_filter (sn->methflag, strlen (sn->methflag));
} else {
sn->classname = NULL;
sn->classflag = NULL;
@ -1073,7 +1073,7 @@ static void snInit(RCore *r, SymName *sn, RBinSymbol *sym, const char *lang) {
sn->demname = r_bin_demangle (r->bin->cur, lang, sn->name);
if (sn->demname) {
sn->demflag = r_str_newf ("%s.%s", pfx, sn->demname);
r_name_filter (sn->demflag, MAXFLAG_LEN);
r_name_filter (sn->demflag, -1);
}
}
}
@ -1159,6 +1159,7 @@ static int bin_symbols_internal(RCore *r, int mode, ut64 laddr, int va, ut64 at,
if (r->bin->prefix) {
char *prname;
prname = r_str_newf ("%s.%s", r->bin->prefix, sn.methflag);
r_name_filter (sn.methflag, -1);
free (sn.methflag);
sn.methflag = prname;
}

View File

@ -2910,7 +2910,7 @@ R_API RList* r_bin_java_get_strings(RBinJavaObj* bin) {
r_list_foreach_safe (bin->cp_list, iter, iter_tmp, cp_obj) {
if (cp_obj && cp_obj->tag == R_BIN_JAVA_CP_UTF8) {
str = (RBinString *) R_NEW0 (RBinString);
if(str) {
if (str) {
str->paddr = cp_obj->file_offset + bin->loadaddr;
str->ordinal = cp_obj->metas->ord;
str->size = cp_obj->info.cp_utf8.length + 3;