mirror of
https://github.com/radareorg/radare2.git
synced 2025-02-04 04:28:20 +00:00
Fix some asan issues with latest rbin changes in dex
This commit is contained in:
parent
8d9af55342
commit
e37ada9096
@ -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);
|
||||
|
@ -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;
|
||||
}
|
||||
|
@ -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;
|
||||
|
Loading…
x
Reference in New Issue
Block a user