From ae97789986e3079d47df65c13f954b6b098ce14a Mon Sep 17 00:00:00 2001 From: pancake Date: Sat, 14 Sep 2013 14:04:08 +0200 Subject: [PATCH] Fix lot of warnings --- libr/anal/fcn.c | 6 +- libr/asm/arch/arc/gnu/arc-ext.c | 3 + libr/asm/arch/arm/gnu/arm-dis.c | 2 + libr/asm/arch/c55plus/decode.c | 4 +- libr/asm/p/asm_arm_winedbg.c | 2 +- libr/bin/p/bin_mach064.c | 10 +- libr/bin/p/bin_pe64.c | 2 +- libr/core/config.c | 2 +- libr/fs/fs.c | 2 +- libr/io/p/io_ewf.c | 2 +- libr/io/p/io_mach.c | 1 + libr/parse/code.c | 2 +- libr/util/str.c | 8 +- libr/util/w32-sys.c | 4 +- shlr/java/class.c | 453 +++++++++++++++----------------- shlr/java/class.h | 405 +++++++++++++--------------- shlr/tcc/Makefile | 2 +- shlr/tcc/tcc.h | 1 + shlr/tcc/tccelf.c | 187 +------------ shlr/tcc/tccpp.c | 4 +- 20 files changed, 442 insertions(+), 660 deletions(-) diff --git a/libr/anal/fcn.c b/libr/anal/fcn.c index 192430634d..22e292d2e5 100644 --- a/libr/anal/fcn.c +++ b/libr/anal/fcn.c @@ -512,8 +512,8 @@ R_API char *r_anal_fcn_to_string(RAnal *a, RAnalFunction* fs) { arg->type, arg->name, arg->delta, arg->type->custom.a->count); else #endif -sign = r_str_concatf (sign, i?", %s %s:%02x":"%s %s:%02x", - arg->type, arg->name, arg->delta); + sign = r_str_concatf (sign, i?", %s %s:%02x":"%s %s:%02x", + arg->type, arg->name, arg->delta); } return (sign = r_str_concatf (sign, ");")); } @@ -522,7 +522,6 @@ sign = r_str_concatf (sign, i?", %s %s:%02x":"%s %s:%02x", /* set function signature from string */ R_API int r_anal_str_to_fcn(RAnal *a, RAnalFunction *f, const char *sig) { char *str; //*p, *q, *r - RAnalType *t; if (!a || !f || !sig) { eprintf ("r_anal_str_to_fcn: No function received\n"); @@ -536,6 +535,7 @@ R_API int r_anal_str_to_fcn(RAnal *a, RAnalFunction *f, const char *sig) { /* TODO: Improve arguments parsing */ /* + RAnalType *t; t = r_anal_str_to_type(a, str); str = strdup (sig); diff --git a/libr/asm/arch/arc/gnu/arc-ext.c b/libr/asm/arch/arc/gnu/arc-ext.c index 4be121ba49..f9a5eebf8b 100644 --- a/libr/asm/arch/arc/gnu/arc-ext.c +++ b/libr/asm/arch/arc/gnu/arc-ext.c @@ -23,6 +23,7 @@ #include +#include #include #include "arc-ext.h" @@ -114,6 +115,7 @@ static struct arcExtMap arc_extension_map; /* local functions */ /* -------------------------------------------------------------------------- */ +#if 0 static void create_map(unsigned char *block, unsigned long length) { unsigned char *p = block; @@ -267,6 +269,7 @@ static void destroy_map(void) memset (&arc_extension_map, 0, sizeof (arc_extension_map)); } +#endif static const char* ExtReadWrite_image(enum ExtReadWrite val) diff --git a/libr/asm/arch/arm/gnu/arm-dis.c b/libr/asm/arch/arm/gnu/arm-dis.c index 7539d1489e..4729698baa 100644 --- a/libr/asm/arch/arm/gnu/arm-dis.c +++ b/libr/asm/arch/arm/gnu/arm-dis.c @@ -2895,7 +2895,9 @@ print_insn_neon (struct disassemble_info *info, long given, bfd_boolean thumb) if (isfloat) { unsigned char valbytes[4]; +#if HAVE_FLOAT double fvalue; +#endif /* Do this a byte at a time so we don't have to worry about the host's endianness. */ diff --git a/libr/asm/arch/c55plus/decode.c b/libr/asm/arch/c55plus/decode.c index 287f84bb4d..632ad2277f 100644 --- a/libr/asm/arch/c55plus/decode.c +++ b/libr/asm/arch/c55plus/decode.c @@ -309,7 +309,7 @@ static st8 *decode_ins(st32 hash_code, ut32 ins_pos, ut32 ins_off, ut32 *ins_len } - len = (ut32)aux - (ut32)pos; + len = (ut32)(size_t)(aux-pos); if(len >= 80) { fprintf(stderr, "Invalid length token %d\n", len); *err_code = -1; return NULL; } @@ -325,7 +325,7 @@ static st8 *decode_ins(st32 hash_code, ut32 ins_pos, ut32 ins_off, ut32 *ins_len reg = NULL; for(i = 0; i < len; i++) { if(token_aux[i] == ',') { - len = (unsigned int)&token_aux[i] - (unsigned int)token_aux; + len = (unsigned int)(size_t)(&token_aux[i] - token_aux); reg = &token_aux[i + 1]; if(C55PLUS_DEBUG) diff --git a/libr/asm/p/asm_arm_winedbg.c b/libr/asm/p/asm_arm_winedbg.c index 5116d366f5..313b4194da 100644 --- a/libr/asm/p/asm_arm_winedbg.c +++ b/libr/asm/p/asm_arm_winedbg.c @@ -10,7 +10,7 @@ #include "../arch/arm/winedbg/be_arm.h" static int disassemble(RAsm *a, RAsmOp *op, const ut8 *buf, int len) { - char buf2[4]; + ut8 buf2[4]; struct arm_insn *arminsn = arm_new(); arm_set_pc (arminsn, a->pc); arm_set_thumb (arminsn, a->bits == 16); diff --git a/libr/bin/p/bin_mach064.c b/libr/bin/p/bin_mach064.c index 4c6a489fcd..e09493e477 100644 --- a/libr/bin/p/bin_mach064.c +++ b/libr/bin/p/bin_mach064.c @@ -1,4 +1,4 @@ -/* radare - LGPL - Copyright 2009-2011 nibble<.ds@gmail.com> */ +/* radare - LGPL - Copyright 2009-2013 - nibble, pancake */ #define R_BIN_MACH064 1 #include "bin_mach0.c" @@ -36,11 +36,7 @@ static RBuffer* create(RBin* bin, const ut8 *code, int codelen, const ut8 *data, D(0x80000003); // unknown subtype issue D (2); // filetype (executable) - if (data && datalen>0) { - ncmds = 3; - } else { - ncmds = 2; - } + ncmds = (data && datalen>0)? 3: 2; /* COMMANDS */ D (ncmds); // ncmds @@ -197,7 +193,7 @@ RBinPlugin r_bin_plugin_mach064 = { .info = &info, .fields = NULL, .libs = &libs, - .relocs = NULL, + .relocs = &relocs, .meta = NULL, .write = NULL, .create = &create, diff --git a/libr/bin/p/bin_pe64.c b/libr/bin/p/bin_pe64.c index 9f741f48ef..9467710bb9 100644 --- a/libr/bin/p/bin_pe64.c +++ b/libr/bin/p/bin_pe64.c @@ -34,7 +34,7 @@ struct r_bin_plugin_t r_bin_plugin_pe64 = { .info = &info, .fields = NULL, .libs = &libs, - .relocs = NULL, + .relocs = &relocs, .meta = NULL, .write = NULL, }; diff --git a/libr/core/config.c b/libr/core/config.c index a5d00707e3..0d4413adc6 100644 --- a/libr/core/config.c +++ b/libr/core/config.c @@ -837,7 +837,7 @@ r_config_set (cfg, "asm.arch", R_SYS_ARCH); r_config_desc (cfg, "hex.cols", "Configure the number of columns in hexdump"); r_config_set_cb (cfg, "scr.html", "false", &config_scrhtml_callback); r_config_desc (cfg, "scr.html", "If enabled disassembly use HTML syntax"); - r_config_set_cb (cfg, "scr.heightfix", "false", &config_widthfix_callback); + r_config_set_cb (cfg, "scr.heightfix", "false", &config_heightfix_callback); r_config_desc (cfg, "scr.heightfix", "Workaround for Linux TTY"); r_config_set_cb (cfg, "scr.widthfix", "false", &config_widthfix_callback); r_config_desc (cfg, "scr.widthfix", "Workaround for Prompt iOS ssh client"); diff --git a/libr/fs/fs.c b/libr/fs/fs.c index 138b9cab1c..0f338f3296 100644 --- a/libr/fs/fs.c +++ b/libr/fs/fs.c @@ -569,7 +569,7 @@ R_API int r_fs_prompt (RFS *fs, const char *root) { while (*input == ' ') input++; if (!strcmp (input, "..")) { - char *p = r_str_lchr (path, '/'); + char *p = (char *)r_str_lchr (path, '/'); if (p) p[(p==path)?1:0]=0; } else { strcat (path, "/"); diff --git a/libr/io/p/io_ewf.c b/libr/io/p/io_ewf.c index e683b488eb..a61edddcd4 100644 --- a/libr/io/p/io_ewf.c +++ b/libr/io/p/io_ewf.c @@ -76,7 +76,7 @@ static RIODesc *ewf__open(RIO *io, const char *pathname, int rw, int mode) { ut8 hash[1024]; size64_t media_size; uint32_t bytes_per_sector; - uint64_t amount_of_sectors; + //uint64_t amount_of_sectors; uint32_t error_granularity; //uint32_t amount_of_acquiry_errors; int8_t compression_level; diff --git a/libr/io/p/io_mach.c b/libr/io/p/io_mach.c index 84110d43ce..c9635af9c1 100644 --- a/libr/io/p/io_mach.c +++ b/libr/io/p/io_mach.c @@ -14,6 +14,7 @@ #include #include #include +#include #include #include #include diff --git a/libr/parse/code.c b/libr/parse/code.c index 3440a65e68..b6cbd0ed49 100644 --- a/libr/parse/code.c +++ b/libr/parse/code.c @@ -6,7 +6,7 @@ /* parse C code and return it in key-value form */ -static void appendstring(char *msg, char **s) { +static void appendstring(const char *msg, char **s) { if (!s) printf ("%s\n", msg); else diff --git a/libr/util/str.c b/libr/util/str.c index 8d88ffd564..7c7af890c5 100644 --- a/libr/util/str.c +++ b/libr/util/str.c @@ -284,7 +284,7 @@ R_API char *r_str_word_get0set(char *stra, int stralen, int idx, const char *new int alen, blen, nlen; if (!stra && !newstr) return NULL; if (stra) - p = r_str_word_get0 (stra, idx); + p = (char *)r_str_word_get0 (stra, idx); if (!p) { int nslen = strlen (newstr); out = malloc (nslen+1); @@ -303,7 +303,7 @@ R_API char *r_str_word_get0set(char *stra, int stralen, int idx, const char *new memcpy (out, stra, alen); memcpy (out+alen, newstr, strlen (newstr)+1); if (blen>0) - memcpy (out+alen+strlen (newstr)+1, p+strlen(p)+1, blen)+1; + memcpy (out+alen+strlen (newstr)+1, p+strlen (p)+1, blen+1); out[nlen+1] = 0; if (newlen) *newlen = nlen + ((blen==0)?1:0); @@ -316,7 +316,7 @@ R_API const char *r_str_word_get0(const char *str, int idx) { if (ptr == NULL) return (char *)nullstr; for (i=0; *ptr && i != idx; i++) - ptr = ptr + strlen(ptr) + 1; + ptr += strlen (ptr) + 1; return ptr; } @@ -623,7 +623,7 @@ R_API char* r_str_replace(char *str, const char *key, const char *val, int g) { int klen = strlen (key); int vlen = strlen (val); int slen = strlen (str); - char *new, *old, *p2, *p = str; + char *new, *old, *p = str; for (i = 0; i < slen; ) { p = (char *)r_mem_mem ( (const ut8*)str + i, slen - i, diff --git a/libr/util/w32-sys.c b/libr/util/w32-sys.c index fe58c87eb2..ae24b97eb9 100644 --- a/libr/util/w32-sys.c +++ b/libr/util/w32-sys.c @@ -3,8 +3,10 @@ #if __WINDOWS__ #include -#include #include +#ifndef __CYGWIN__ +#include +#endif #define BUFSIZE 1024 void r_sys_perror(const char *fun); diff --git a/shlr/java/class.c b/shlr/java/class.c index 12f5c5729f..eae89e434a 100644 --- a/shlr/java/class.c +++ b/shlr/java/class.c @@ -58,7 +58,7 @@ inline ut16 r_bin_java_read_short_from_buffer(ut8 *buffer, ut64 offset){ volatile ut8 R_BIN_JAVA_NULL_TYPE_INITTED = 0; -RBinJavaObj * R_BIN_JAVA_GLOBAL_BIN = NULL; +RBinJavaObj* R_BIN_JAVA_GLOBAL_BIN = NULL; // NOTE: must be initialized for safe use //static struct r_bin_java_cp_item_t cp_null_item = {0}; @@ -262,7 +262,7 @@ static RBinJavaAttrMetas RBIN_JAVA_ATTRS_METAS[] = { { "Unknown", R_BIN_JAVA_ATTR_TYPE_UNKNOWN_ATTR, &RBIN_JAVA_ATTRS_ALLOCS[20]} }; -R_API RBinJavaCPTypeObj * r_bin_java_get_java_null_cp(){ +R_API RBinJavaCPTypeObj* r_bin_java_get_java_null_cp(){ if(R_BIN_JAVA_NULL_TYPE_INITTED) return &R_BIN_JAVA_NULL_TYPE; @@ -279,7 +279,7 @@ R_API RBinJavaCPTypeObj * r_bin_java_get_java_null_cp(){ return &R_BIN_JAVA_NULL_TYPE; } -R_API RBinJavaElementValueMetas * r_bin_java_get_ev_meta_from_tag(ut8 tag){ +R_API RBinJavaElementValueMetas* r_bin_java_get_ev_meta_from_tag(ut8 tag){ ut16 i = 0; RBinJavaElementValueMetas *result = &R_BIN_JAVA_ELEMENT_VALUE_METAS[13]; for (i = 0; i < R_BIN_JAVA_ELEMENT_VALUE_METAS_SZ; i++ ){ @@ -291,7 +291,7 @@ R_API RBinJavaElementValueMetas * r_bin_java_get_ev_meta_from_tag(ut8 tag){ return result; } -R_API RBinJavaCPTypeMetas * r_bin_java_get_cp_meta_from_tag(ut8 tag){ +R_API RBinJavaCPTypeMetas* r_bin_java_get_cp_meta_from_tag(ut8 tag){ ut16 i = 0; // set default to unknown. RBinJavaCPTypeMetas *result = &R_BIN_JAVA_CP_METAS[2]; @@ -311,13 +311,13 @@ void deinit_java_type_null(){ R_API ut8 r_bin_java_quick_check(ut8 expected_tag, ut8 actual_tag, ut32 actual_len, const char* name){ ut8 result = 0; - if (expected_tag < 0 || expected_tag > R_BIN_JAVA_CP_METAS_SZ){ + if (expected_tag > R_BIN_JAVA_CP_METAS_SZ){ eprintf ("Invalid tag '%d' expected 0x%02x for %s.\n",actual_tag, expected_tag, name); result = 1; }else if (expected_tag != actual_tag){ eprintf ("Invalid tag '%d' expected 0x%02x for %s.\n",actual_tag, expected_tag, name); result = 1; - }else if(actual_len < R_BIN_JAVA_CP_METAS[expected_tag].len){ + }else if (actual_len < R_BIN_JAVA_CP_METAS[expected_tag].len){ eprintf ("Unable to parse '%d' expected sz=0x%02x got 0x%02x for %s.\n", actual_tag, R_BIN_JAVA_CP_METAS[expected_tag].len, actual_len, name); result = 2; @@ -359,7 +359,7 @@ double rbin_java_raw_to_double(ut8* raw, ut64 offset){ }else if (0xfff0000000000001 <= bits && bits <= 0xffffffffffffffffL ){ result = NAN; }else{ - result = s * m * my_pow(2, e-1075);//XXXX TODO Get double to work correctly here + result = s* m* my_pow(2, e-1075);//XXXX TODO Get double to work correctly here IFDBG printf("Convert Long to Double s: %d, m: 0x%08lx, e: 0x%08x, result: %f\n", s, m, e, result); } return result; @@ -367,7 +367,7 @@ double rbin_java_raw_to_double(ut8* raw, ut64 offset){ -R_API RBinJavaField * r_bin_java_read_next_method(RBinJavaObj *bin, ut64 offset){ +R_API RBinJavaField* r_bin_java_read_next_method(RBinJavaObj *bin, ut64 offset){ RBinJavaField *method; RBinJavaAttrInfo* attr; ut32 i; @@ -438,7 +438,7 @@ R_API RBinJavaField * r_bin_java_read_next_method(RBinJavaObj *bin, ut64 offset) -R_API RBinJavaField * r_bin_java_read_next_field(RBinJavaObj *bin, ut64 offset){ +R_API RBinJavaField* r_bin_java_read_next_field(RBinJavaObj *bin, ut64 offset){ RBinJavaField *field; RBinJavaAttrInfo* attr; ut32 i; @@ -496,7 +496,7 @@ R_API RBinJavaField * r_bin_java_read_next_field(RBinJavaObj *bin, ut64 offset){ } -R_API RBinJavaCPTypeObj * r_bin_java_clone_cp_idx(RBinJavaObj *bin, ut32 idx){ +R_API RBinJavaCPTypeObj* r_bin_java_clone_cp_idx(RBinJavaObj *bin, ut32 idx){ RBinJavaCPTypeObj* obj = NULL; if (bin) @@ -504,7 +504,7 @@ R_API RBinJavaCPTypeObj * r_bin_java_clone_cp_idx(RBinJavaObj *bin, ut32 idx){ return r_bin_java_clone_cp_item(obj); } -R_API RBinJavaCPTypeObj * r_bin_java_clone_cp_item(RBinJavaCPTypeObj *obj){ +R_API RBinJavaCPTypeObj* r_bin_java_clone_cp_item(RBinJavaCPTypeObj *obj){ RBinJavaCPTypeObj *clone_obj = NULL; if (obj == NULL) @@ -526,7 +526,7 @@ R_API RBinJavaCPTypeObj * r_bin_java_clone_cp_item(RBinJavaCPTypeObj *obj){ } -R_API RBinJavaCPTypeObj * r_bin_java_read_next_constant_pool_item(RBinJavaObj *bin, ut64 offset){ +R_API RBinJavaCPTypeObj* r_bin_java_read_next_constant_pool_item(RBinJavaObj *bin, ut64 offset){ RBinJavaCPTypeMetas *java_constant_info = NULL; ut8 tag = 0; ut64 buf_sz = 0; @@ -587,7 +587,7 @@ R_API RBinJavaCPTypeObj * r_bin_java_read_next_constant_pool_item(RBinJavaObj *b -R_API RBinJavaInterfaceInfo * r_bin_java_read_next_interface_item(RBinJavaObj *bin, ut64 offset){ +R_API RBinJavaInterfaceInfo* r_bin_java_read_next_interface_item(RBinJavaObj *bin, ut64 offset){ ut8 buf[2] = {0}; RBinJavaInterfaceInfo *interface_obj; @@ -629,7 +629,7 @@ static void addrow (RBinJavaObj *bin, int addr, int line) { // return (i<0||i>bin->cf.cp_count)? &cp_null_item: &bin->cp_items[i]; //} -R_API RBinJavaCPTypeObj * r_bin_java_get_item_from_cp(RBinJavaObj *bin, int i) { +R_API RBinJavaCPTypeObj* r_bin_java_get_item_from_cp(RBinJavaObj *bin, int i) { if (i < 0 || i > bin->cf.cp_count ) return &R_BIN_JAVA_NULL_TYPE; @@ -640,7 +640,7 @@ R_API RBinJavaCPTypeObj * r_bin_java_get_item_from_cp(RBinJavaObj *bin, int i) { return obj; } -R_API char * r_bin_java_get_utf8_from_bin_cp_list(RBinJavaObj *bin, ut64 idx){ +R_API char* r_bin_java_get_utf8_from_bin_cp_list(RBinJavaObj *bin, ut64 idx){ /* Search through the Constant Pool list for the given CP Index. If the idx not found by directly going to the list index, @@ -655,7 +655,7 @@ R_API char * r_bin_java_get_utf8_from_bin_cp_list(RBinJavaObj *bin, ut64 idx){ return r_bin_java_get_utf8_from_cp_item_list(bin->cp_list, idx); } -R_API char * r_bin_java_get_name_from_bin_cp_list(RBinJavaObj *bin, ut64 idx){ +R_API char* r_bin_java_get_name_from_bin_cp_list(RBinJavaObj *bin, ut64 idx){ /* Search through the Constant Pool list for the given CP Index. If the idx not found by directly going to the list index, @@ -670,7 +670,7 @@ R_API char * r_bin_java_get_name_from_bin_cp_list(RBinJavaObj *bin, ut64 idx){ return r_bin_java_get_name_from_cp_item_list(bin->cp_list, idx); } -R_API char * r_bin_java_get_desc_from_bin_cp_list(RBinJavaObj *bin, ut64 idx){ +R_API char* r_bin_java_get_desc_from_bin_cp_list(RBinJavaObj *bin, ut64 idx){ /* Search through the Constant Pool list for the given CP Index. If the idx not found by directly going to the list index, @@ -685,13 +685,13 @@ R_API char * r_bin_java_get_desc_from_bin_cp_list(RBinJavaObj *bin, ut64 idx){ return r_bin_java_get_desc_from_cp_item_list(bin->cp_list, idx); } -R_API RBinJavaCPTypeObj * r_bin_java_get_item_from_bin_cp_list(RBinJavaObj *bin, ut64 idx){ +R_API RBinJavaCPTypeObj* r_bin_java_get_item_from_bin_cp_list(RBinJavaObj *bin, ut64 idx){ /* Search through the Constant Pool list for the given CP Index. If the idx not found by directly going to the list index, the list will be walked and then the IDX will be checked. - rvalue: RBinJavaObj * (user does NOT free). + rvalue: RBinJavaObj* (user does NOT free). */ if (bin == NULL) @@ -700,13 +700,13 @@ R_API RBinJavaCPTypeObj * r_bin_java_get_item_from_bin_cp_list(RBinJavaObj *bin, return r_bin_java_get_item_from_cp_item_list(bin->cp_list, idx); } -R_API char * r_bin_java_get_item_name_from_bin_cp_list(RBinJavaObj *bin, RBinJavaCPTypeObj *obj){ +R_API char* r_bin_java_get_item_name_from_bin_cp_list(RBinJavaObj *bin, RBinJavaCPTypeObj *obj){ /* Given a constant poool object Class, FieldRef, MethodRef, or InterfaceMethodRef return the actual descriptor string. @param cp_list: RList of RBinJavaCPTypeObj * @param obj object to look up the name for - @rvalue char * (user frees) or NULL + @rvalue char* (user frees) or NULL */ if (bin == NULL) return NULL; @@ -714,13 +714,13 @@ R_API char * r_bin_java_get_item_name_from_bin_cp_list(RBinJavaObj *bin, RBinJav return r_bin_java_get_item_name_from_cp_item_list(bin->cp_list, obj); } -R_API char * r_bin_java_get_item_desc_from_bin_cp_list(RBinJavaObj *bin, RBinJavaCPTypeObj *obj){ +R_API char* r_bin_java_get_item_desc_from_bin_cp_list(RBinJavaObj *bin, RBinJavaCPTypeObj *obj){ /* Given a constant poool object Class, FieldRef, MethodRef, or InterfaceMethodRef return the actual descriptor string. @param cp_list: RList of RBinJavaCPTypeObj * @param obj object to look up the name for - @rvalue char * (user frees) or NULL + @rvalue char* (user frees) or NULL */ if (bin == NULL) return NULL; @@ -729,7 +729,7 @@ R_API char * r_bin_java_get_item_desc_from_bin_cp_list(RBinJavaObj *bin, RBinJav } -R_API char * r_bin_java_get_utf8_from_cp_item_list(RList *cp_list, ut64 idx){ +R_API char* r_bin_java_get_utf8_from_cp_item_list(RList *cp_list, ut64 idx){ /* Search through the Constant Pool list for the given CP Index. If the idx not found by directly going to the list index, @@ -763,7 +763,7 @@ R_API char * r_bin_java_get_utf8_from_cp_item_list(RList *cp_list, ut64 idx){ return value; } -R_API RBinJavaCPTypeObj * r_bin_java_get_item_from_cp_item_list(RList *cp_list, ut64 idx){ +R_API RBinJavaCPTypeObj* r_bin_java_get_item_from_cp_item_list(RList *cp_list, ut64 idx){ /* Search through the Constant Pool list for the given CP Index. @@ -781,13 +781,13 @@ R_API RBinJavaCPTypeObj * r_bin_java_get_item_from_cp_item_list(RList *cp_list, -R_API char * r_bin_java_get_item_name_from_cp_item_list(RList *cp_list, RBinJavaCPTypeObj *obj){ +R_API char* r_bin_java_get_item_name_from_cp_item_list(RList *cp_list, RBinJavaCPTypeObj *obj){ /* Given a constant poool object Class, FieldRef, MethodRef, or InterfaceMethodRef return the actual descriptor string. @param cp_list: RList of RBinJavaCPTypeObj * @param obj object to look up the name for - @rvalue ut8 * (user frees) or NULL + @rvalue ut8* (user frees) or NULL */ char *value = NULL; @@ -831,13 +831,13 @@ R_API char * r_bin_java_get_item_name_from_cp_item_list(RList *cp_list, RBinJava } -R_API char * r_bin_java_get_name_from_cp_item_list(RList *cp_list, ut64 idx){ +R_API char* r_bin_java_get_name_from_cp_item_list(RList *cp_list, ut64 idx){ /* Given a constant poool object Class, FieldRef, MethodRef, or InterfaceMethodRef return the actual descriptor string. @param cp_list: RList of RBinJavaCPTypeObj * @param obj object to look up the name for - @rvalue ut8 * (user frees) or NULL + @rvalue ut8* (user frees) or NULL */ RBinJavaCPTypeObj *obj = r_bin_java_get_item_from_cp_item_list(cp_list, idx); @@ -848,12 +848,12 @@ R_API char * r_bin_java_get_name_from_cp_item_list(RList *cp_list, ut64 idx){ } -R_API char * r_bin_java_get_item_desc_from_cp_item_list(RList *cp_list, RBinJavaCPTypeObj *obj){ +R_API char* r_bin_java_get_item_desc_from_cp_item_list(RList *cp_list, RBinJavaCPTypeObj *obj){ /* Given a constant poool object FieldRef, MethodRef, or InterfaceMethodRef return the actual descriptor string. - @rvalue ut8 * (user frees) or NULL + @rvalue ut8* (user frees) or NULL */ RBinJavaCPTypeObj *item = NULL; @@ -887,12 +887,12 @@ R_API char * r_bin_java_get_item_desc_from_cp_item_list(RList *cp_list, RBinJava return r_bin_java_get_name_from_cp_item_list(cp_list, idx); } -R_API char * r_bin_java_get_desc_from_cp_item_list(RList *cp_list, ut64 idx){ +R_API char* r_bin_java_get_desc_from_cp_item_list(RList *cp_list, ut64 idx){ /* Given a constant poool object FieldRef, MethodRef, or InterfaceMethodRef return the actual descriptor string. - @rvalue ut8 * (user frees) or NULL + @rvalue ut8* (user frees) or NULL */ char *value = NULL; @@ -926,11 +926,11 @@ R_API char * r_bin_java_get_desc_from_cp_item_list(RList *cp_list, ut64 idx){ return r_bin_java_get_utf8_from_cp_item_list(cp_list, idx); } -R_API RBinJavaAttrInfo * r_bin_java_get_method_code_attribute(RBinJavaField *method){ +R_API RBinJavaAttrInfo* r_bin_java_get_method_code_attribute(RBinJavaField *method){ /* Search through a methods attributes and return the code attr. - rvalue: RBinJavaAttrInfo * if found otherwise NULL. + rvalue: RBinJavaAttrInfo* if found otherwise NULL. */ RBinJavaAttrInfo *result = NULL, *attr = NULL; @@ -948,7 +948,7 @@ R_API RBinJavaAttrInfo * r_bin_java_get_method_code_attribute(RBinJavaField *met return result; } -R_API RBinJavaAttrInfo * r_bin_java_get_attr_from_field(RBinJavaField *field, R_BIN_JAVA_ATTR_TYPE attr_type, ut32 pos ){ +R_API RBinJavaAttrInfo* r_bin_java_get_attr_from_field(RBinJavaField *field, R_BIN_JAVA_ATTR_TYPE attr_type, ut32 pos ){ /* Search through the Attribute list for the given type starting at position pos. rvalue: NULL or the first occurrence of attr_type after pos @@ -971,7 +971,7 @@ R_API RBinJavaAttrInfo * r_bin_java_get_attr_from_field(RBinJavaField *field, R_ } return attr; } -R_API ut8 * r_bin_java_get_attr_buf(RBinJavaObj *bin, ut64 offset, ut64 sz){ +R_API ut8* r_bin_java_get_attr_buf(RBinJavaObj *bin, ut64 offset, ut64 sz){ ut8 buf[10]; ut8 *attr_buf = NULL; if (offset == R_BUF_CUR) @@ -989,7 +989,7 @@ R_API ut8 * r_bin_java_get_attr_buf(RBinJavaObj *bin, ut64 offset, ut64 sz){ return attr_buf; } -R_API RBinJavaAttrInfo * r_bin_java_default_attr_new(ut8* buffer, ut64 sz, ut64 buf_offset){ +R_API RBinJavaAttrInfo* r_bin_java_default_attr_new(ut8* buffer, ut64 sz, ut64 buf_offset){ RBinJavaAttrInfo *attr = (RBinJavaAttrInfo *) malloc(sizeof(RBinJavaAttrInfo)); RBinJavaAttrMetas *type_info = NULL; @@ -1032,8 +1032,8 @@ R_API RBinJavaAttrInfo * r_bin_java_default_attr_new(ut8* buffer, ut64 sz, ut64 return attr; } -RBinJavaAttrMetas * r_bin_java_get_attr_type_by_name(ut8 *name){ - RBinJavaAttrMetas * result = &RBIN_JAVA_ATTRS_METAS[R_BIN_JAVA_ATTR_TYPE_UNKNOWN_ATTR]; +RBinJavaAttrMetas* r_bin_java_get_attr_type_by_name(ut8 *name){ + RBinJavaAttrMetas* result = &RBIN_JAVA_ATTRS_METAS[R_BIN_JAVA_ATTR_TYPE_UNKNOWN_ATTR]; ut32 i = 0; for (i = 0; i < RBIN_JAVA_ATTRS_METAS_SZ; i++){ @@ -1046,38 +1046,34 @@ RBinJavaAttrMetas * r_bin_java_get_attr_type_by_name(ut8 *name){ } -R_API RBinJavaAttrInfo * r_bin_java_read_next_attr(RBinJavaObj *bin, ut64 buf_offset){ - - //ut8* buffer, ut64 sz, ut64 buf_offset){ - RBinJavaAttrInfo * attr = NULL; +R_API RBinJavaAttrInfo* r_bin_java_read_next_attr(RBinJavaObj *bin, ut64 buf_offset){ + RBinJavaAttrInfo* attr = NULL; ut64 sz = 0; ut8* buffer = NULL; ut8 attr_idx_len = 6; - if(buf_offset == R_BUF_CUR){ + if (buf_offset == R_BUF_CUR) buf_offset = bin->b->cur; - } // ut16 attr_idx, ut32 length of attr. sz = r_bin_java_read_int(bin, buf_offset+2) + attr_idx_len; // when reading the attr bytes, need to also // include the initial 6 bytes, which // are not included in the attribute length - IFDBG eprintf("Reading %d bytes from 0x%llx to 0x%llx\n", sz, buf_offset, buf_offset+sz); + IFDBG eprintf("Reading %"PFMT64d" bytes from 0x%"PFMT64x" to 0x%"PFMT64x"\n", + sz, buf_offset, buf_offset+sz); buffer = r_bin_java_get_attr_buf(bin, buf_offset, sz); attr = r_bin_java_read_next_attr_from_buffer(buffer, sz, buf_offset); - if (attr){ - // advance the cursor to the correct place + if (attr) // advance the cursor to the correct place bin->b->cur = (buf_offset + sz); - } return attr; } -R_API RBinJavaAttrInfo * r_bin_java_read_next_attr_from_buffer(ut8 *buffer, ut64 sz, ut64 buf_offset){ +R_API RBinJavaAttrInfo* r_bin_java_read_next_attr_from_buffer(ut8 *buffer, ut64 sz, ut64 buf_offset){ RBinJavaAttrInfo *attr = NULL; ut64 offset = 0; - RBinJavaAttrMetas * type_info = NULL; + RBinJavaAttrMetas* type_info = NULL; if (buffer){ ut8* name = NULL; @@ -1105,7 +1101,7 @@ R_API RBinJavaAttrInfo * r_bin_java_read_next_attr_from_buffer(ut8 *buffer, ut64 return attr; } -RBinJavaClass2 * r_bin_java_read_class_file2(RBinJavaObj *bin, ut64 offset){ +RBinJavaClass2* r_bin_java_read_class_file2(RBinJavaObj *bin, ut64 offset){ RBinJavaClass2 *cf2 = (RBinJavaClass2 *) malloc(sizeof(RBinJavaClass2)); if (cf2){ @@ -1132,12 +1128,10 @@ static int javasm_init(RBinJavaObj *bin) { RBinJavaCPTypeObj *obj; int i; /* Initialize structs */ - R_BIN_JAVA_GLOBAL_BIN = bin; bin->lines.count = 0; - bin->cp_list = r_list_new(); - - r_bin_java_get_java_null_cp(); + bin->cp_list = r_list_new (); + r_bin_java_get_java_null_cp (); /* Initialize cp_null_item */ //cp_null_item.tag = -1; @@ -1153,7 +1147,6 @@ static int javasm_init(RBinJavaObj *bin) { return R_FALSE; } - if (bin->cf.major[0]==bin->cf.major[1] && bin->cf.major[0]==0) { eprintf ("Java CLASS with MACH0 header?\n"); return R_FALSE; @@ -1163,18 +1156,18 @@ static int javasm_init(RBinJavaObj *bin) { IFDBG printf ("ConstantPoolCount %d\n", bin->cp_count); bin->cp_offset = bin->b->cur; for (i=0; i < bin->cp_count; i++, bin->cp_idx++) { - obj = r_bin_java_read_next_constant_pool_item(bin, bin->b->cur); - if (obj){ + obj = r_bin_java_read_next_constant_pool_item (bin, bin->b->cur); + if (obj) { //IFDBG printf ("SUCCESS Read ConstantPoolItem %d\n", i); obj->metas->ord = i+1; - r_list_append(bin->cp_list, obj); + r_list_append (bin->cp_list, obj); if (obj->tag == R_BIN_JAVA_CP_LONG || obj->tag == R_BIN_JAVA_CP_DOUBLE){ i++; bin->cp_idx++; - r_list_append(bin->cp_list, &R_BIN_JAVA_NULL_TYPE); + r_list_append (bin->cp_list, &R_BIN_JAVA_NULL_TYPE); } IFDBG ((RBinJavaCPTypeMetas *) obj->metas->type_info)->allocs->print_summary(obj); - }else{ + } else { IFDBG printf ("Failed to read ConstantPoolItem %d\n", i); } @@ -1227,7 +1220,7 @@ static int javasm_init(RBinJavaObj *bin) { bin->methods_offset = bin->b->cur; bin->methods_count = r_bin_java_read_short (bin,bin->b->cur); - bin->methods_list = r_list_new(); + bin->methods_list = r_list_new (); IFDBG printf ("Methods count: %d\n", bin->methods_count); bin->main = NULL; @@ -1238,7 +1231,7 @@ static int javasm_init(RBinJavaObj *bin) { for ( i=0; imethods_count; i++,bin->method_idx++) { method = r_bin_java_read_next_method(bin, bin->b->cur); if (method){ - r_list_append(bin->methods_list, method); + r_list_append (bin->methods_list, method); } // Update Main, Init, or Class Init if (method && !strcmp ( (const char *) method->name, "main")){ @@ -1266,7 +1259,7 @@ static int javasm_init(RBinJavaObj *bin) { if (bin->attributes_count > 0) { for ( i=0; iattributes_count; i++,bin->attributes_idx++) { - RBinJavaAttrInfo * attr = r_bin_java_read_next_attr(bin, bin->b->cur); + RBinJavaAttrInfo* attr = r_bin_java_read_next_attr(bin, bin->b->cur); if (attr) r_list_append(bin->attributes, attr); } @@ -1315,8 +1308,8 @@ typedef struct r_bin_symbol_t { } RBinSymbol; */ -RBinSymbol * r_bin_java_allocate_symbol(){ - RBinSymbol * t = (RBinSymbol *) malloc(sizeof(RBinSymbol)); +RBinSymbol* r_bin_java_allocate_symbol(){ + RBinSymbol* t = (RBinSymbol *) malloc(sizeof(RBinSymbol)); if (t) memset(t, 0, sizeof(RBinSymbol)); @@ -1360,8 +1353,8 @@ typedef struct r_bin_field_t { ut64 offset; } RBinField; */ -RBinField * r_bin_java_allocate_rbinfield(){ - RBinField * t = (RBinField *) malloc(sizeof(RBinField)); +RBinField* r_bin_java_allocate_rbinfield(){ + RBinField* t = (RBinField *) malloc(sizeof(RBinField)); if (t) memset(t, 0, sizeof(RBinField)); @@ -1369,7 +1362,7 @@ RBinField * r_bin_java_allocate_rbinfield(){ return t; } -R_API RBinField * r_bin_java_create_new_rbinfield_from_field(RBinJavaField *fm_type){ +R_API RBinField* r_bin_java_create_new_rbinfield_from_field(RBinJavaField *fm_type){ RBinField *field = r_bin_java_allocate_rbinfield(); @@ -1381,7 +1374,7 @@ R_API RBinField * r_bin_java_create_new_rbinfield_from_field(RBinJavaField *fm_t return field; } -R_API RBinSymbol * r_bin_java_create_new_symbol_from_field(RBinJavaField *fm_type){ +R_API RBinSymbol* r_bin_java_create_new_symbol_from_field(RBinJavaField *fm_type){ RBinSymbol *sym = r_bin_java_allocate_symbol(); @@ -1398,8 +1391,7 @@ R_API RBinSymbol * r_bin_java_create_new_symbol_from_field(RBinJavaField *fm_typ return sym; } -R_API RBinSymbol * r_bin_java_create_new_symbol_from_ref(RBinJavaCPTypeObj *obj){ - +R_API RBinSymbol* r_bin_java_create_new_symbol_from_ref(RBinJavaCPTypeObj *obj){ RBinSymbol *sym = r_bin_java_allocate_symbol(); ut8 *class_name, *name, *type_name; @@ -1452,15 +1444,15 @@ typedef struct r_bin_section_t { } RBinSection; */ -R_API RBinSection * r_bin_java_allocate_section(){ - RBinSection * section = (RBinSection *) malloc(sizeof(RBinSection)); +R_API RBinSection* r_bin_java_allocate_section(){ + RBinSection* section = (RBinSection *) malloc(sizeof(RBinSection)); if(section) memset(section, 0, sizeof(RBinSection)); return section; } -R_API RList * r_bin_java_get_sections(RBinJavaObj *bin){ - RBinSection * section = NULL; +R_API RList* r_bin_java_get_sections(RBinJavaObj *bin){ + RBinSection* section = NULL; RList *sections = r_list_new(); @@ -1522,40 +1514,34 @@ R_API RList * r_bin_java_get_sections(RBinJavaObj *bin){ return sections; } -R_API RList * r_bin_java_enum_class_methods(RBinJavaObj *bin, ut16 class_idx){ - RList * methods = r_list_new(); - RListIter *iter, *iter_tmp; +R_API RList* r_bin_java_enum_class_methods(RBinJavaObj *bin, ut16 class_idx){ + RList* methods = r_list_new (); + RListIter *iter; RBinJavaField *fm_type; RBinSymbol *sym = NULL; - r_list_foreach_safe(bin->methods_list, iter, iter_tmp, fm_type){ - if(fm_type){ - if (fm_type && fm_type->field_ref_cp_obj - && fm_type->field_ref_cp_obj->metas->ord == class_idx){ - - sym = r_bin_java_create_new_symbol_from_ref(fm_type); - if(sym){ - r_list_append(methods, sym); - } - } + r_list_foreach (bin->methods_list, iter, fm_type) { + if (fm_type && fm_type->field_ref_cp_obj && \ + fm_type->field_ref_cp_obj->metas->ord == class_idx) { + sym = r_bin_java_create_new_symbol_from_ref ( + fm_type->field_ref_cp_obj); + if (sym) r_list_append (methods, sym); } } return methods; } -R_API RList * r_bin_java_enum_class_fields(RBinJavaObj *bin, ut16 class_idx){ - RList * fields = r_list_new(); +R_API RList* r_bin_java_enum_class_fields(RBinJavaObj *bin, ut16 class_idx){ + RList* fields = r_list_new(); RListIter *iter, *iter_tmp; RBinJavaField *fm_type; RBinField *field = NULL; r_list_foreach_safe(bin->fields_list, iter, iter_tmp, fm_type){ - if(fm_type){ + if (fm_type) { if (fm_type && fm_type->field_ref_cp_obj && fm_type->field_ref_cp_obj->metas->ord == class_idx){ field = r_bin_java_create_new_rbinfield_from_field(fm_type); - if(field){ - r_list_append(fields, field); - } + if (field) r_list_append(fields, field); } } @@ -1564,37 +1550,33 @@ R_API RList * r_bin_java_enum_class_fields(RBinJavaObj *bin, ut16 class_idx){ return fields; } -R_API RList * r_bin_java_allocate_r_bin_class(){ - RBinClass * class_ = (RBinClass *) malloc(sizeof(RBinClass)); - if (class_){ - memset(class_, 0, sizeof(RBinClass)); +R_API RBinClass* r_bin_java_allocate_r_bin_class(){ + RBinClass* class_ = R_NEW0 (RBinClass); + if (class_) { //class_->methods = r_list_new(); //class_->fields = r_list_new(); } return class_; } -R_API RList * r_bin_java_get_classes(RBinJavaObj *bin){ - RBinSection * rclass = NULL; - RList *classes = r_list_new(); +R_API RList* r_bin_java_get_classes(RBinJavaObj *bin){ + RBinSection* rclass = NULL; + RList *classes = r_list_new (); RListIter *iter, *iter_tmp; RBinJavaCPTypeObj *cp_obj = NULL; ut32 idx = 0; RBinClass *class_; - - - class_ = r_bin_java_allocate_r_bin_class(); + class_ = r_bin_java_allocate_r_bin_class (); class_->visibility = bin->cf2->access_flags; class_->methods = r_bin_java_enum_class_methods(bin, bin->cf2->this_class); class_->fields = r_bin_java_enum_class_fields(bin, bin->cf2->this_class); class_->name = r_bin_java_get_item_name_from_bin_cp_list(bin, cp_obj); class_->super = r_bin_java_get_name_from_bin_cp_list(bin, bin->cf2->super_class); class_->index = (idx++); - r_list_append(classes, class_); + r_list_append (classes, class_); - - r_list_foreach_safe(bin->cp_list, iter, iter_tmp, cp_obj){ + r_list_foreach_safe (bin->cp_list, iter, iter_tmp, cp_obj){ if (cp_obj && cp_obj->tag == R_BIN_JAVA_CP_CLASS && bin->cf2->this_class != cp_obj->info.cp_class.name_idx){ @@ -1611,39 +1593,35 @@ R_API RList * r_bin_java_get_classes(RBinJavaObj *bin){ return classes; } - -R_API RBinSymbol * r_bin_java_create_new_symbol_from_invoke_dynamic(RBinJavaCPTypeObj *obj){ +R_API RBinSymbol* r_bin_java_create_new_symbol_from_invoke_dynamic(RBinJavaCPTypeObj *obj){ RBinSymbol *sym = NULL; - if (obj == NULL || (obj->tag != R_BIN_JAVA_CP_INVOKEDYNAMIC)){ + if (obj == NULL || (obj->tag != R_BIN_JAVA_CP_INVOKEDYNAMIC)) return sym; - } return r_bin_java_create_new_symbol_from_cp_idx(obj->info.cp_invoke_dynamic.name_and_type_index); } -R_API RBinSymbol * r_bin_java_create_new_symbol_from_cp_idx(ut32 cp_idx){ - - RBinJavaCPTypeObj *obj = r_bin_java_get_item_from_bin_cp_list(R_BIN_JAVA_GLOBAL_BIN, cp_idx); +R_API RBinSymbol* r_bin_java_create_new_symbol_from_cp_idx(ut32 cp_idx) { RBinSymbol *sym = NULL; + RBinJavaCPTypeObj *obj = r_bin_java_get_item_from_bin_cp_list ( + R_BIN_JAVA_GLOBAL_BIN, cp_idx); - if (obj){ - switch(obj->tag){ - case R_BIN_JAVA_CP_METHODREF: - case R_BIN_JAVA_CP_FIELDREF: - case R_BIN_JAVA_CP_INTERFACEMETHOD_REF: - sym = r_bin_java_create_new_symbol_from_ref(obj); - break; - case R_BIN_JAVA_CP_INVOKEDYNAMIC: - sym = r_bin_java_create_new_symbol_from_invoke_dynamic(obj); - break; - default: - break; - } + if (obj) switch (obj->tag) { + case R_BIN_JAVA_CP_METHODREF: + case R_BIN_JAVA_CP_FIELDREF: + case R_BIN_JAVA_CP_INTERFACEMETHOD_REF: + sym = r_bin_java_create_new_symbol_from_ref (obj); + break; + case R_BIN_JAVA_CP_INVOKEDYNAMIC: + sym = r_bin_java_create_new_symbol_from_invoke_dynamic (obj); + break; + default: + break; } return sym; } -RList * r_bin_java_get_fields(RBinJavaObj* bin) { +RList* r_bin_java_get_fields(RBinJavaObj* bin) { RListIter *iter = NULL, *iter_tmp=NULL; RList *fields = r_list_new(); RBinField *field; @@ -1659,7 +1637,7 @@ RList * r_bin_java_get_fields(RBinJavaObj* bin) { } -RList * r_bin_java_get_symbols(RBinJavaObj* bin) { +RList* r_bin_java_get_symbols(RBinJavaObj* bin) { RListIter *iter = NULL, *iter_tmp=NULL; RList *symbols = r_list_new(); RBinSymbol *sym; @@ -1686,7 +1664,7 @@ typedef struct r_bin_string_t { } RBinString; */ -R_API RList * r_bin_java_get_strings(RBinJavaObj* bin) { +R_API RList* r_bin_java_get_strings(RBinJavaObj* bin) { RList *strings = r_list_new(); RBinString *str = NULL; @@ -2118,7 +2096,7 @@ R_API void r_bin_java_source_code_file_attr_free(RBinJavaAttrInfo *attr){ } -R_API void r_bin_java_stack_map_table_attr_free(RBinJavaAttrInfo * attr){ +R_API void r_bin_java_stack_map_table_attr_free(RBinJavaAttrInfo* attr){ RListIter *iter = NULL, *iter_tmp = NULL; RList* ptrList = NULL; RBinJavaStackMapFrame *frame = NULL; @@ -2147,7 +2125,7 @@ R_API void r_bin_java_stack_map_table_attr_free(RBinJavaAttrInfo * attr){ } -R_API void r_bin_java_stack_frame_free(RBinJavaStackMapFrame * obj){ +R_API void r_bin_java_stack_frame_free(RBinJavaStackMapFrame* obj){ RListIter *iter = NULL, *iter_tmp = NULL; RList* ptrList = NULL; RBinJavaVerificationObj *ver_obj = NULL; @@ -2183,7 +2161,7 @@ R_API void r_bin_java_stack_frame_free(RBinJavaStackMapFrame * obj){ } } -R_API void r_bin_java_verification_info_free(RBinJavaVerificationObj * obj){ +R_API void r_bin_java_verification_info_free(RBinJavaVerificationObj* obj){ if(obj){ if (obj->name) free(obj->name); @@ -2192,9 +2170,8 @@ R_API void r_bin_java_verification_info_free(RBinJavaVerificationObj * obj){ } -R_API void r_bin_java_interface_free(R_API RBinJavaInterfaceInfo *obj){ - - if(obj){ +R_API void r_bin_java_interface_free(RBinJavaInterfaceInfo *obj){ + if (obj) { if (obj->name) free(obj->name); free(obj); @@ -2223,7 +2200,7 @@ R_API ut64 r_bin_java_unknown_attr_calc_size(RBinJavaAttrInfo *attr){ } -R_API RBinJavaAttrInfo * r_bin_java_unknown_attr_new(ut8 *buffer, ut64 sz, ut64 buf_offset){ +R_API RBinJavaAttrInfo* r_bin_java_unknown_attr_new(ut8 *buffer, ut64 sz, ut64 buf_offset){ return r_bin_java_default_attr_new(buffer, sz, buf_offset); } @@ -2279,7 +2256,7 @@ R_API ut64 r_bin_java_code_attr_calc_size(RBinJavaAttrInfo *attr){ } -R_API RBinJavaAttrInfo * r_bin_java_code_attr_new(ut8 *buffer, ut64 sz, ut64 buf_offset){ +R_API RBinJavaAttrInfo* r_bin_java_code_attr_new(ut8 *buffer, ut64 sz, ut64 buf_offset){ RBinJavaExceptionEntry *exc_entry = NULL; RBinJavaAttrInfo *attr = NULL, *_attr = NULL; @@ -2394,9 +2371,9 @@ R_API RBinJavaAttrInfo * r_bin_java_code_attr_new(ut8 *buffer, ut64 sz, ut64 buf -R_API RBinJavaAttrInfo * r_bin_java_constant_value_attr_new(ut8 *buffer, ut64 sz, ut64 buf_offset){ +R_API RBinJavaAttrInfo* r_bin_java_constant_value_attr_new(ut8 *buffer, ut64 sz, ut64 buf_offset){ ut64 offset = 0; - RBinJavaAttrInfo * attr = NULL; + RBinJavaAttrInfo* attr = NULL; attr = r_bin_java_default_attr_new(buffer, sz, buf_offset); offset += 6; @@ -2411,7 +2388,7 @@ R_API RBinJavaAttrInfo * r_bin_java_constant_value_attr_new(ut8 *buffer, ut64 sz return attr; } -R_API ut64 r_bin_java_constant_value_attr_calc_size(RBinJavaAttrInfo * attr){ +R_API ut64 r_bin_java_constant_value_attr_calc_size(RBinJavaAttrInfo* attr){ ut64 size = 0; if (attr){ @@ -2423,8 +2400,8 @@ R_API ut64 r_bin_java_constant_value_attr_calc_size(RBinJavaAttrInfo * attr){ -R_API RBinJavaAttrInfo * r_bin_java_deprecated_attr_new(ut8 *buffer, ut64 sz, ut64 buf_offset){ - RBinJavaAttrInfo * attr = NULL; +R_API RBinJavaAttrInfo* r_bin_java_deprecated_attr_new(ut8 *buffer, ut64 sz, ut64 buf_offset){ + RBinJavaAttrInfo* attr = NULL; ut64 offset = 0; attr = r_bin_java_default_attr_new(buffer, sz, buf_offset); @@ -2439,7 +2416,7 @@ R_API RBinJavaAttrInfo * r_bin_java_deprecated_attr_new(ut8 *buffer, ut64 sz, ut return attr; } -R_API ut64 r_bin_java_deprecated_attr_calc_size(RBinJavaAttrInfo * attr){ +R_API ut64 r_bin_java_deprecated_attr_calc_size(RBinJavaAttrInfo* attr){ ut64 size = 0; if (attr){ @@ -2450,9 +2427,9 @@ R_API ut64 r_bin_java_deprecated_attr_calc_size(RBinJavaAttrInfo * attr){ } -R_API RBinJavaAttrInfo * r_bin_java_signature_attr_new(ut8 *buffer, ut64 sz, ut64 buf_offset){ +R_API RBinJavaAttrInfo* r_bin_java_signature_attr_new(ut8 *buffer, ut64 sz, ut64 buf_offset){ ut64 offset = 0; - RBinJavaAttrInfo * attr = NULL; + RBinJavaAttrInfo* attr = NULL; attr = r_bin_java_default_attr_new(buffer, sz, buf_offset); offset += 6; @@ -2480,7 +2457,7 @@ R_API RBinJavaAttrInfo * r_bin_java_signature_attr_new(ut8 *buffer, ut64 sz, ut6 return attr; } -R_API ut64 r_bin_java_signature_attr_calc_size(RBinJavaAttrInfo * attr){ +R_API ut64 r_bin_java_signature_attr_calc_size(RBinJavaAttrInfo* attr){ ut64 size = 0; if (attr == NULL){ // TODO eprintf allocation fail @@ -2496,9 +2473,9 @@ R_API ut64 r_bin_java_signature_attr_calc_size(RBinJavaAttrInfo * attr){ return size; } -R_API RBinJavaAttrInfo * r_bin_java_enclosing_methods_attr_new(ut8 *buffer, ut64 sz, ut64 buf_offset){ +R_API RBinJavaAttrInfo* r_bin_java_enclosing_methods_attr_new(ut8 *buffer, ut64 sz, ut64 buf_offset){ ut64 offset = 0; - RBinJavaAttrInfo * attr = NULL; + RBinJavaAttrInfo* attr = NULL; attr = r_bin_java_default_attr_new(buffer, sz, buf_offset); @@ -2549,9 +2526,9 @@ R_API ut64 r_bin_java_enclosing_methods_attr_calc_size(RBinJavaAttrInfo *attr){ } -R_API RBinJavaAttrInfo * r_bin_java_exceptions_attr_new(ut8 *buffer, ut64 sz, ut64 buf_offset){ +R_API RBinJavaAttrInfo* r_bin_java_exceptions_attr_new(ut8 *buffer, ut64 sz, ut64 buf_offset){ ut32 i = 0, offset = 0; - RBinJavaAttrInfo * attr = NULL; + RBinJavaAttrInfo* attr = NULL; attr = r_bin_java_default_attr_new(buffer, sz, buf_offset); offset += 6; @@ -2566,7 +2543,7 @@ R_API RBinJavaAttrInfo * r_bin_java_exceptions_attr_new(ut8 *buffer, ut64 sz, ut attr->info.exceptions_attr.number_of_exceptions = R_BIN_JAVA_USHORT(buffer, offset); offset += 2; - attr->info.exceptions_attr.exception_idx_table = (ut16 *) malloc( sizeof(ut16) * attr->info.exceptions_attr.number_of_exceptions); + attr->info.exceptions_attr.exception_idx_table = (ut16 *) malloc( sizeof(ut16)* attr->info.exceptions_attr.number_of_exceptions); for (i = 0; i < attr->info.exceptions_attr.number_of_exceptions; i++){ attr->info.exceptions_attr.exception_idx_table[i] = R_BIN_JAVA_USHORT(buffer, offset); @@ -2592,7 +2569,7 @@ R_API ut64 r_bin_java_exceptions_attr_calc_size(RBinJavaAttrInfo *attr){ -R_API RBinJavaAttrInfo * r_bin_java_inner_classes_attr_new(ut8* buffer, ut64 sz, ut64 buf_offset){ +R_API RBinJavaAttrInfo* r_bin_java_inner_classes_attr_new(ut8* buffer, ut64 sz, ut64 buf_offset){ RBinJavaClassesAttribute *icattr; RBinJavaAttrInfo *attr = NULL; @@ -2689,7 +2666,7 @@ R_API ut64 r_bin_java_inner_classes_attr_calc_size(RBinJavaAttrInfo *attr){ } -R_API RBinJavaAttrInfo * r_bin_java_line_number_table_attr_new(ut8 *buffer, ut64 sz, ut64 buf_offset){ +R_API RBinJavaAttrInfo* r_bin_java_line_number_table_attr_new(ut8 *buffer, ut64 sz, ut64 buf_offset){ RBinJavaLineNumberAttribute *lnattr; RBinJavaAttrInfo *attr = NULL; ut32 i = 0; @@ -2736,7 +2713,7 @@ R_API RBinJavaAttrInfo * r_bin_java_line_number_table_attr_new(ut8 *buffer, ut64 return attr; } -R_API ut64 r_bin_java_line_number_table_attr_calc_size(RBinJavaAttrInfo * attr){ +R_API ut64 r_bin_java_line_number_table_attr_calc_size(RBinJavaAttrInfo* attr){ ut64 size = 0; RBinJavaLineNumberAttribute *lnattr; RListIter *iter, *iter_tmp; @@ -2756,7 +2733,7 @@ R_API ut64 r_bin_java_line_number_table_attr_calc_size(RBinJavaAttrInfo * attr){ } -R_API RBinJavaAttrInfo * r_bin_java_source_debug_attr_new(ut8* buffer, ut64 sz, ut64 buf_offset){ +R_API RBinJavaAttrInfo* r_bin_java_source_debug_attr_new(ut8* buffer, ut64 sz, ut64 buf_offset){ ut64 offset = 0; RBinJavaAttrInfo *attr = NULL; @@ -2841,7 +2818,7 @@ R_API ut64 r_bin_java_local_variable_table_attr_calc_size(RBinJavaAttrInfo *attr } -R_API RBinJavaAttrInfo * r_bin_java_local_variable_table_attr_new(ut8 * buffer, ut64 sz, ut64 buf_offset){ +R_API RBinJavaAttrInfo* r_bin_java_local_variable_table_attr_new(ut8* buffer, ut64 sz, ut64 buf_offset){ RBinJavaAttrInfo *attr = NULL; RBinJavaLocalVariableAttribute* lvattr; ut64 cur_location = 0, offset = 0; @@ -2945,9 +2922,9 @@ R_API ut64 r_bin_java_local_variable_type_table_attr_calc_size(RBinJavaAttrInfo } -R_API RBinJavaAttrInfo * r_bin_java_local_variable_type_table_attr_new(ut8* buffer, ut64 sz, ut64 buf_offset){ +R_API RBinJavaAttrInfo* r_bin_java_local_variable_type_table_attr_new(ut8* buffer, ut64 sz, ut64 buf_offset){ RBinJavaLocalVariableTypeAttribute* lvattr; - RBinJavaAttrInfo * attr = NULL; + RBinJavaAttrInfo* attr = NULL; ut64 offset = 0; ut32 i = 0; @@ -3018,9 +2995,9 @@ R_API RBinJavaAttrInfo * r_bin_java_local_variable_type_table_attr_new(ut8* buff return attr; } -R_API RBinJavaAttrInfo * r_bin_java_source_code_file_attr_new(ut8 *buffer, ut64 sz, ut64 buf_offset){ +R_API RBinJavaAttrInfo* r_bin_java_source_code_file_attr_new(ut8 *buffer, ut64 sz, ut64 buf_offset){ ut64 offset = 0; - RBinJavaAttrInfo * attr = NULL; + RBinJavaAttrInfo* attr = NULL; attr = r_bin_java_default_attr_new(buffer, sz, buf_offset); offset += 6; @@ -3038,7 +3015,7 @@ R_API RBinJavaAttrInfo * r_bin_java_source_code_file_attr_new(ut8 *buffer, ut64 } -R_API ut64 r_bin_java_source_code_file_attr_calc_size(RBinJavaAttrInfo * attr){ +R_API ut64 r_bin_java_source_code_file_attr_calc_size(RBinJavaAttrInfo* attr){ ut64 size = 0; if (attr == NULL){ // TODO eprintf allocation fail @@ -3049,9 +3026,9 @@ R_API ut64 r_bin_java_source_code_file_attr_calc_size(RBinJavaAttrInfo * attr){ } -R_API RBinJavaAttrInfo * r_bin_java_synthetic_attr_new(ut8 *buffer, ut64 sz, ut64 buf_offset){ +R_API RBinJavaAttrInfo* r_bin_java_synthetic_attr_new(ut8 *buffer, ut64 sz, ut64 buf_offset){ ut64 offset = 0; - RBinJavaAttrInfo * attr = NULL; + RBinJavaAttrInfo* attr = NULL; attr = r_bin_java_default_attr_new(buffer, sz, buf_offset); offset += 6; @@ -3061,7 +3038,7 @@ R_API RBinJavaAttrInfo * r_bin_java_synthetic_attr_new(ut8 *buffer, ut64 sz, ut6 return attr; } -R_API ut64 r_bin_java_synthetic_attr_calc_size(RBinJavaAttrInfo * attr){ +R_API ut64 r_bin_java_synthetic_attr_calc_size(RBinJavaAttrInfo* attr){ ut64 size = 6; if (attr == NULL){ // TODO eprintf allocation fail @@ -3072,7 +3049,7 @@ R_API ut64 r_bin_java_synthetic_attr_calc_size(RBinJavaAttrInfo * attr){ } -R_API RBinJavaInterfaceInfo * r_bin_java_interface_new(RBinJavaObj *bin, ut8 *buffer, ut64 sz){ +R_API RBinJavaInterfaceInfo* r_bin_java_interface_new(RBinJavaObj *bin, ut8 *buffer, ut64 sz){ RBinJavaInterfaceInfo *interface_obj = NULL; interface_obj = (RBinJavaInterfaceInfo *) malloc(sizeof(RBinJavaInterfaceInfo)); @@ -3104,7 +3081,7 @@ R_API RBinJavaInterfaceInfo * r_bin_java_interface_new(RBinJavaObj *bin, ut8 *bu } -R_API RBinJavaVerificationObj * r_bin_java_verification_info_from_type(RBinJavaObj *bin, R_BIN_JAVA_STACKMAP_TYPE type, ut32 value){ +R_API RBinJavaVerificationObj* r_bin_java_verification_info_from_type(RBinJavaObj *bin, R_BIN_JAVA_STACKMAP_TYPE type, ut32 value){ RBinJavaVerificationObj *stack_element = (RBinJavaVerificationObj *) malloc(sizeof(RBinJavaVerificationObj)); if (stack_element == NULL) return NULL; @@ -3127,7 +3104,7 @@ R_API RBinJavaVerificationObj * r_bin_java_verification_info_from_type(RBinJavaO } -R_API RBinJavaVerificationObj * r_bin_java_read_from_buffer_verification_info_new(ut8 * buffer, ut64 sz, ut64 buf_offset){ +R_API RBinJavaVerificationObj* r_bin_java_read_from_buffer_verification_info_new(ut8* buffer, ut64 sz, ut64 buf_offset){ ut64 offset = 0; RBinJavaVerificationObj *stack_element = (RBinJavaVerificationObj *) malloc(sizeof(RBinJavaVerificationObj)); @@ -3188,7 +3165,7 @@ R_API RBinJavaVerificationObj * r_bin_java_read_from_buffer_verification_info_ne return stack_element; } -R_API ut64 rbin_java_verification_info_calc_size(RBinJavaVerificationObj * stack_element){ +R_API ut64 rbin_java_verification_info_calc_size(RBinJavaVerificationObj* stack_element){ ut64 sz = 0; if (stack_element == NULL){ // eprintf error here @@ -3213,7 +3190,7 @@ R_API ut64 rbin_java_verification_info_calc_size(RBinJavaVerificationObj * stack -R_API RBinJavaStackMapFrameMetas * r_bin_java_determine_stack_frame_type(ut8 tag){ +R_API RBinJavaStackMapFrameMetas* r_bin_java_determine_stack_frame_type(ut8 tag){ ut8 type_value = 0; if (tag < 64) @@ -3341,7 +3318,7 @@ R_API ut64 r_bin_java_stack_map_frame_calc_size(RBinJavaStackMapFrame *stack_fra } -R_API RBinJavaStackMapFrame * r_bin_java_stack_map_frame_new (ut8* buffer, ut64 sz, RBinJavaStackMapFrame *p_frame, ut64 buf_offset){ +R_API RBinJavaStackMapFrame* r_bin_java_stack_map_frame_new (ut8* buffer, ut64 sz, RBinJavaStackMapFrame *p_frame, ut64 buf_offset){ RBinJavaStackMapFrame *stack_frame = r_bin_java_default_stack_frame(); RBinJavaVerificationObj *stack_element; ut64 offset = 0; @@ -3534,9 +3511,9 @@ ut16 r_bin_java_find_cp_class_ref_from_name_idx(RBinJavaObj *bin, ut16 name_idx) } -R_API RBinJavaStackMapFrame * r_bin_java_default_stack_frame(){ +R_API RBinJavaStackMapFrame* r_bin_java_default_stack_frame(){ - RBinJavaStackMapFrame * stack_frame = (RBinJavaStackMapFrame *) malloc(sizeof(RBinJavaStackMapFrame)); + RBinJavaStackMapFrame* stack_frame = (RBinJavaStackMapFrame *) malloc(sizeof(RBinJavaStackMapFrame)); if(stack_frame == NULL) return stack_frame; @@ -3561,7 +3538,7 @@ R_API RBinJavaStackMapFrame * r_bin_java_default_stack_frame(){ return stack_frame; } -R_API RBinJavaStackMapFrame * r_bin_java_build_stack_frame_from_local_variable_table(RBinJavaObj *bin, RBinJavaAttrInfo *attr){ +R_API RBinJavaStackMapFrame* r_bin_java_build_stack_frame_from_local_variable_table(RBinJavaObj *bin, RBinJavaAttrInfo *attr){ RBinJavaStackMapFrame *stack_frame = r_bin_java_default_stack_frame(); RBinJavaLocalVariableAttribute *lvattr = NULL; RBinJavaVerificationObj *type_item; @@ -3624,7 +3601,7 @@ R_API RBinJavaStackMapFrame * r_bin_java_build_stack_frame_from_local_variable_t } -R_API ut64 r_bin_java_stack_map_table_attr_calc_size(RBinJavaAttrInfo * attr){ +R_API ut64 r_bin_java_stack_map_table_attr_calc_size(RBinJavaAttrInfo* attr){ ut64 size = 0; RListIter *iter, *iter_tmp; RBinJavaStackMapFrame *stack_frame = NULL; @@ -3651,7 +3628,7 @@ R_API ut64 r_bin_java_stack_map_table_attr_calc_size(RBinJavaAttrInfo * attr){ } -R_API RBinJavaAttrInfo * r_bin_java_stack_map_table_attr_new(ut8* buffer, ut64 sz, ut64 buf_offset){ +R_API RBinJavaAttrInfo* r_bin_java_stack_map_table_attr_new(ut8* buffer, ut64 sz, ut64 buf_offset){ ut32 i = 0; ut64 offset = 0; RBinJavaStackMapFrame *stack_frame = NULL, *new_stack_frame = NULL; @@ -3709,7 +3686,7 @@ R_API RBinJavaAttrInfo * r_bin_java_stack_map_table_attr_new(ut8* buffer, ut64 s // Start new Constant Pool Types -R_API RBinJavaCPTypeObj * r_bin_java_do_nothing_new(RBinJavaObj *bin, ut8* buffer, ut64 sz){ +R_API RBinJavaCPTypeObj* r_bin_java_do_nothing_new(RBinJavaObj *bin, ut8* buffer, ut64 sz){ return (RBinJavaCPTypeObj *)NULL; } @@ -3722,7 +3699,7 @@ R_API void r_bin_java_do_nothing_free(RBinJavaCPTypeObj *obj){ return ; } -R_API RBinJavaCPTypeObj * r_bin_java_unknown_cp_new(RBinJavaObj *bin, ut8* buffer, ut64 sz){ +R_API RBinJavaCPTypeObj* r_bin_java_unknown_cp_new(RBinJavaObj *bin, ut8* buffer, ut64 sz){ ut8 tag = buffer[0]; RBinJavaCPTypeObj *obj = NULL; @@ -3745,7 +3722,7 @@ R_API ut64 r_bin_java_unknown_cp_calc_size(RBinJavaCPTypeObj* obj){ return size; } -R_API RBinJavaCPTypeObj * r_bin_java_class_cp_new(RBinJavaObj *bin, ut8* buffer, ut64 sz){ +R_API RBinJavaCPTypeObj* r_bin_java_class_cp_new(RBinJavaObj *bin, ut8* buffer, ut64 sz){ ut8 tag = buffer[0]; RBinJavaCPTypeObj *obj = NULL; int quick_check = 0; @@ -3782,7 +3759,7 @@ R_API ut64 r_bin_java_class_cp_calc_size(RBinJavaCPTypeObj* obj){ -R_API RBinJavaCPTypeObj * r_bin_java_fieldref_cp_new(RBinJavaObj *bin, ut8* buffer, ut64 sz){ +R_API RBinJavaCPTypeObj* r_bin_java_fieldref_cp_new(RBinJavaObj *bin, ut8* buffer, ut64 sz){ ut8 tag = buffer[0]; RBinJavaCPTypeObj *obj = NULL; int quick_check = 0; @@ -3820,7 +3797,7 @@ R_API ut64 r_bin_java_fieldref_cp_calc_size(RBinJavaCPTypeObj* obj){ } -R_API RBinJavaCPTypeObj * r_bin_java_methodref_cp_new(RBinJavaObj *bin, ut8* buffer, ut64 sz){ +R_API RBinJavaCPTypeObj* r_bin_java_methodref_cp_new(RBinJavaObj *bin, ut8* buffer, ut64 sz){ ut8 tag = buffer[0]; RBinJavaCPTypeObj *obj = NULL; int quick_check = 0; @@ -3857,7 +3834,7 @@ R_API ut64 r_bin_java_methodref_cp_calc_size(RBinJavaCPTypeObj* obj){ } -R_API RBinJavaCPTypeObj * r_bin_java_interfacemethodref_cp_new(RBinJavaObj *bin, ut8* buffer, ut64 sz){ +R_API RBinJavaCPTypeObj* r_bin_java_interfacemethodref_cp_new(RBinJavaObj *bin, ut8* buffer, ut64 sz){ ut8 tag = buffer[0]; RBinJavaCPTypeObj *obj = NULL; @@ -3898,7 +3875,7 @@ R_API ut64 r_bin_java_interfacemethodref_cp_calc_size(RBinJavaCPTypeObj* obj){ -R_API RBinJavaCPTypeObj * r_bin_java_string_cp_new(RBinJavaObj *bin, ut8* buffer, ut64 sz){ +R_API RBinJavaCPTypeObj* r_bin_java_string_cp_new(RBinJavaObj *bin, ut8* buffer, ut64 sz){ ut8 tag = buffer[0]; RBinJavaCPTypeObj *obj = NULL; int quick_check = 0; @@ -3931,7 +3908,7 @@ R_API ut64 r_bin_java_string_cp_calc_size(RBinJavaCPTypeObj* obj){ return size; } -R_API RBinJavaCPTypeObj * r_bin_java_integer_cp_new(RBinJavaObj *bin, ut8* buffer, ut64 sz){ +R_API RBinJavaCPTypeObj* r_bin_java_integer_cp_new(RBinJavaObj *bin, ut8* buffer, ut64 sz){ ut8 tag = buffer[0]; RBinJavaCPTypeObj *obj = NULL; int quick_check = 0; @@ -3964,7 +3941,7 @@ R_API ut64 r_bin_java_integer_cp_calc_size(RBinJavaCPTypeObj* obj){ return size; } -R_API RBinJavaCPTypeObj * r_bin_java_float_cp_new(RBinJavaObj *bin, ut8* buffer, ut64 sz){ +R_API RBinJavaCPTypeObj* r_bin_java_float_cp_new(RBinJavaObj *bin, ut8* buffer, ut64 sz){ ut8 tag = buffer[0]; RBinJavaCPTypeObj *obj = NULL; int quick_check = 0; @@ -3998,7 +3975,7 @@ R_API ut64 r_bin_java_float_cp_calc_size(RBinJavaCPTypeObj* obj){ return size; } -R_API RBinJavaCPTypeObj * r_bin_java_long_cp_new(RBinJavaObj *bin, ut8* buffer, ut64 sz){ +R_API RBinJavaCPTypeObj* r_bin_java_long_cp_new(RBinJavaObj *bin, ut8* buffer, ut64 sz){ ut8 tag = buffer[0]; RBinJavaCPTypeObj *obj = NULL; int quick_check = 0; @@ -4032,7 +4009,7 @@ R_API ut64 r_bin_java_long_cp_calc_size(RBinJavaCPTypeObj* obj){ return size; } -R_API RBinJavaCPTypeObj * r_bin_java_double_cp_new(RBinJavaObj *bin, ut8* buffer, ut64 sz){ +R_API RBinJavaCPTypeObj* r_bin_java_double_cp_new(RBinJavaObj *bin, ut8* buffer, ut64 sz){ ut8 tag = buffer[0]; RBinJavaCPTypeObj *obj = NULL; int quick_check = 0; @@ -4069,7 +4046,7 @@ R_API ut64 r_bin_java_double_cp_calc_size(RBinJavaCPTypeObj* obj){ } -R_API RBinJavaCPTypeObj * r_bin_java_utf8_cp_new(RBinJavaObj *bin, ut8* buffer, ut64 sz){ +R_API RBinJavaCPTypeObj* r_bin_java_utf8_cp_new(RBinJavaObj *bin, ut8* buffer, ut64 sz){ ut8 tag = buffer[0]; RBinJavaCPTypeObj *obj = NULL; int quick_check = 0; @@ -4120,7 +4097,7 @@ R_API ut64 r_bin_java_utf8_cp_calc_size(RBinJavaCPTypeObj* obj){ return size; } -R_API RBinJavaCPTypeObj * r_bin_java_name_and_type_cp_new(RBinJavaObj *bin, ut8* buffer, ut64 sz){ +R_API RBinJavaCPTypeObj* r_bin_java_name_and_type_cp_new(RBinJavaObj *bin, ut8* buffer, ut64 sz){ ut8 tag = buffer[0]; RBinJavaCPTypeObj *obj = NULL; int quick_check = 0; @@ -4159,7 +4136,7 @@ R_API ut64 r_bin_java_name_and_type_cp_calc_size(RBinJavaCPTypeObj* obj){ return size; } -R_API RBinJavaCPTypeObj * r_bin_java_methodtype_cp_new(RBinJavaObj *bin, ut8* buffer, ut64 sz){ +R_API RBinJavaCPTypeObj* r_bin_java_methodtype_cp_new(RBinJavaObj *bin, ut8* buffer, ut64 sz){ ut8 tag = buffer[0]; RBinJavaCPTypeObj *obj = NULL; int quick_check = 0; @@ -4193,7 +4170,7 @@ R_API ut64 r_bin_java_methodtype_cp_calc_size(RBinJavaCPTypeObj* obj){ } -R_API RBinJavaCPTypeObj * r_bin_java_methodhandle_cp_new(RBinJavaObj *bin, ut8* buffer, ut64 sz){ +R_API RBinJavaCPTypeObj* r_bin_java_methodhandle_cp_new(RBinJavaObj *bin, ut8* buffer, ut64 sz){ ut8 tag = buffer[0]; RBinJavaCPTypeObj *obj = NULL; int quick_check = 0; @@ -4225,7 +4202,7 @@ R_API ut64 r_bin_java_methodhandle_cp_calc_size(RBinJavaCPTypeObj* obj){ return size; } -R_API RBinJavaCPTypeObj * r_bin_java_invokedynamic_cp_new(RBinJavaObj *bin, ut8* buffer, ut64 sz){ +R_API RBinJavaCPTypeObj* r_bin_java_invokedynamic_cp_new(RBinJavaObj *bin, ut8* buffer, ut64 sz){ ut8 tag = buffer[0]; RBinJavaCPTypeObj *obj = NULL; int quick_check = 0; @@ -4346,7 +4323,7 @@ R_API void r_bin_java_print_code_exceptions_attr_summary(RBinJavaExceptionEntry // End free Constant Pool types R_API void r_bin_java_print_code_attr_summary(RBinJavaAttrInfo *attr){ RListIter *iter = NULL, *iter_tmp = NULL; - RBinJavaExceptionEntry * exc_entry = NULL; + RBinJavaExceptionEntry* exc_entry = NULL; RBinJavaAttrInfo *_attr = NULL; if (attr == NULL){ eprintf ("Attempting to print an invalid RBinJavaAttrInfo *Code.\n"); @@ -4444,7 +4421,7 @@ R_API void r_bin_java_print_exceptions_attr_summary(RBinJavaAttrInfo *attr){ R_API void r_bin_java_print_classes_attr_summary(RBinJavaClassesAttribute *icattr){ if (icattr == NULL){ - eprintf ("Attempting to print an invalid RBinJavaClassesAttribute * (InnerClasses element).\n"); + eprintf ("Attempting to print an invalid RBinJavaClassesAttribute* (InnerClasses element).\n"); return; } @@ -5026,7 +5003,7 @@ R_API void r_bin_java_stack_frame_do_nothing_new(RBinJavaObj *bin, RBinJavaStack -R_API RBinJavaElementValuePair * r_bin_java_element_pair_new(ut8* buffer, ut64 sz, ut64 buf_offset){ +R_API RBinJavaElementValuePair* r_bin_java_element_pair_new(ut8* buffer, ut64 sz, ut64 buf_offset){ RBinJavaElementValuePair *ev_pair = NULL; ut64 offset = 0; ev_pair = (RBinJavaElementValuePair *) malloc(sizeof(RBinJavaElementValuePair)); @@ -5071,7 +5048,7 @@ R_API void r_bin_java_print_element_value_summary(RBinJavaElementValue *element_ RBinJavaCPTypeObj *obj; RBinJavaElementValue *ev_element=NULL; RListIter *iter = NULL, *iter_tmp = NULL; - char * name; + char* name; if(ev_element == NULL){ eprintf ("Attempting to print an invalid RBinJavaElementValuePair *pair.\n"); return; @@ -5145,7 +5122,7 @@ R_API void r_bin_java_element_pair_free(RBinJavaElementValuePair *ev_pair){ } ev_pair = NULL; } -R_API void r_bin_java_element_value_free(RBinJavaElementValue * element_value){ +R_API void r_bin_java_element_value_free(RBinJavaElementValue* element_value){ RListIter *iter = NULL, *iter_tmp = NULL; RBinJavaCPTypeObj *obj = NULL; RBinJavaElementValuePair *ev_pairs = NULL; @@ -5225,9 +5202,9 @@ R_API ut64 r_bin_java_annotation_default_attr_calc_size(RBinJavaAttrInfo *attr){ return size; } -R_API RBinJavaAttrInfo * r_bin_java_annotation_default_attr_new(ut8* buffer, ut64 sz, ut64 buf_offset){ +R_API RBinJavaAttrInfo* r_bin_java_annotation_default_attr_new(ut8* buffer, ut64 sz, ut64 buf_offset){ ut64 offset = 0; - RBinJavaAttrInfo * attr = NULL; + RBinJavaAttrInfo* attr = NULL; attr = r_bin_java_default_attr_new(buffer, sz, buf_offset); offset += 6; @@ -5245,7 +5222,7 @@ R_API RBinJavaAttrInfo * r_bin_java_annotation_default_attr_new(ut8* buffer, ut6 R_API void r_bin_java_annotation_default_attr_free(RBinJavaAttrInfo *attr){ RBinJavaElementValuePair *ev_pairs = NULL; - RBinJavaElementValue * element_value = NULL, *ev_element = NULL; + RBinJavaElementValue* element_value = NULL, *ev_element = NULL; RBinJavaCPTypeObj *obj = NULL; RListIter *iter = NULL, *iter_tmp = NULL; @@ -5313,7 +5290,7 @@ R_API void r_bin_java_annotation_default_attr_free(RBinJavaAttrInfo *attr){ } -R_API RBinJavaAnnotation * r_bin_java_annotation_new(ut8* buffer, ut64 sz, ut64 buf_offset){ +R_API RBinJavaAnnotation* r_bin_java_annotation_new(ut8* buffer, ut64 sz, ut64 buf_offset){ ut32 i = 0; RBinJavaAnnotation *annotation = NULL; RBinJavaElementValuePair *ev_pairs = NULL; @@ -5351,7 +5328,7 @@ R_API RBinJavaAnnotation * r_bin_java_annotation_new(ut8* buffer, ut64 sz, ut64 return annotation; } -R_API ut64 r_bin_java_annotation_calc_size(RBinJavaAnnotation * annotation){ +R_API ut64 r_bin_java_annotation_calc_size(RBinJavaAnnotation* annotation){ ut64 sz = 0; RListIter *iter, *iter_tmp; RBinJavaElementValuePair *ev_pairs = NULL; @@ -5429,7 +5406,7 @@ R_API ut64 r_bin_java_element_pair_calc_size(RBinJavaElementValuePair *ev_pair){ R_API ut64 r_bin_java_element_value_calc_size(RBinJavaElementValue *element_value){ RListIter *iter, *iter_tmp; - RBinJavaElementValue * ev_element; + RBinJavaElementValue* ev_element; RBinJavaElementValuePair *ev_pairs; ut64 sz = 0; if (element_value == NULL) @@ -5497,11 +5474,11 @@ R_API ut64 r_bin_java_element_value_calc_size(RBinJavaElementValue *element_valu } -R_API RBinJavaElementValue * r_bin_java_element_value_new(ut8* buffer, ut64 sz, ut64 buf_offset){ +R_API RBinJavaElementValue* r_bin_java_element_value_new(ut8* buffer, ut64 sz, ut64 buf_offset){ ut32 i = 0; ut64 offset = 0; - RBinJavaElementValue * element_value = (RBinJavaElementValue *) malloc(sizeof(RBinJavaElementValue)); - RBinJavaElementValuePair * ev_pairs = NULL; + RBinJavaElementValue* element_value = (RBinJavaElementValue *) malloc(sizeof(RBinJavaElementValue)); + RBinJavaElementValuePair* ev_pairs = NULL; // read element_value->tag if(element_value == NULL){ @@ -5564,7 +5541,7 @@ R_API RBinJavaElementValue * r_bin_java_element_value_new(ut8* buffer, ut64 sz, offset += 2; element_value->value.array_value.values = r_list_new(); for (i = 0; i < element_value->value.array_value.num_values; i++){ - RBinJavaElementValue * ev_element = r_bin_java_element_value_new(buffer+offset, sz-offset, buf_offset+offset); + RBinJavaElementValue* ev_element = r_bin_java_element_value_new(buffer+offset, sz-offset, buf_offset+offset); if (ev_element){ element_value->size += ev_element->size; @@ -5618,7 +5595,7 @@ R_API void r_bin_java_bootstrap_method_argument_free(RBinJavaBootStrapArgument * } } -R_API void r_bin_java_print_bootstrap_method_argument_summary(RBinJavaBootStrapArgument * bsm_arg){ +R_API void r_bin_java_print_bootstrap_method_argument_summary(RBinJavaBootStrapArgument* bsm_arg){ if(bsm_arg == NULL){ eprintf ("Attempting to print an invalid RBinJavaBootStrapArgument *.\n"); @@ -5637,8 +5614,8 @@ R_API void r_bin_java_print_bootstrap_method_argument_summary(RBinJavaBootStrapA } -R_API void r_bin_java_print_bootstrap_method_summary(RBinJavaBootStrapMethod * bsm){ - RBinJavaBootStrapArgument * bsm_arg = NULL; +R_API void r_bin_java_print_bootstrap_method_summary(RBinJavaBootStrapMethod* bsm){ + RBinJavaBootStrapArgument* bsm_arg = NULL; RListIter *iter = NULL, *iter_tmp=NULL; if(bsm == NULL){ eprintf ("Attempting to print an invalid RBinJavaBootStrapArgument *.\n"); @@ -5662,7 +5639,7 @@ R_API void r_bin_java_print_bootstrap_method_summary(RBinJavaBootStrapMethod * b -R_API RBinJavaBootStrapArgument * r_bin_java_bootstrap_method_argument_new(ut8* buffer, ut64 sz, ut64 buf_offset){ +R_API RBinJavaBootStrapArgument* r_bin_java_bootstrap_method_argument_new(ut8* buffer, ut64 sz, ut64 buf_offset){ RBinJavaBootStrapArgument *bsm_arg = NULL; ut64 offset = 0; @@ -5701,7 +5678,7 @@ R_API void r_bin_java_bootstrap_method_free(RBinJavaBootStrapMethod *bsm){ } -R_API RBinJavaBootStrapMethod * r_bin_java_bootstrap_method_new(ut8* buffer, ut64 sz, ut64 buf_offset){ +R_API RBinJavaBootStrapMethod* r_bin_java_bootstrap_method_new(ut8* buffer, ut64 sz, ut64 buf_offset){ RBinJavaBootStrapMethod *bsm = NULL; RBinJavaBootStrapArgument *bsm_arg = NULL; ut32 i = 0; @@ -5780,7 +5757,7 @@ R_API void r_bin_java_bootstrap_methods_attr_free(RBinJavaAttrInfo *attr){ } -R_API ut64 r_bin_java_bootstrap_methods_attr_calc_size(RBinJavaAttrInfo * attr){ +R_API ut64 r_bin_java_bootstrap_methods_attr_calc_size(RBinJavaAttrInfo* attr){ RListIter *iter, *iter_tmp; RBinJavaBootStrapMethod *bsm = NULL; ut64 size = 0; @@ -5835,7 +5812,7 @@ R_API ut64 r_bin_java_bootstrap_method_calc_size(RBinJavaBootStrapMethod *bsm){ return size; } -R_API RBinJavaAttrInfo * r_bin_java_bootstrap_methods_attr_new(ut8* buffer, ut64 sz, ut64 buf_offset){ +R_API RBinJavaAttrInfo* r_bin_java_bootstrap_methods_attr_new(ut8* buffer, ut64 sz, ut64 buf_offset){ ut32 i = 0; RBinJavaBootStrapMethod *bsm = NULL; ut64 offset = 0; @@ -5911,7 +5888,7 @@ R_API void r_bin_java_print_annotation_array_summary(RBinJavaAnnotationsArray *a } -R_API RBinJavaAnnotationsArray * r_bin_java_annotation_array_new(ut8* buffer, ut64 sz, ut64 buf_offset){ +R_API RBinJavaAnnotationsArray* r_bin_java_annotation_array_new(ut8* buffer, ut64 sz, ut64 buf_offset){ RBinJavaAnnotation *annotation; RBinJavaAnnotationsArray *annotation_array; @@ -5942,7 +5919,7 @@ R_API RBinJavaAnnotationsArray * r_bin_java_annotation_array_new(ut8* buffer, ut return annotation_array; } -R_API RBinJavaAttrInfo * r_bin_java_rtv_annotations_attr_new(ut8* buffer, ut64 sz, ut64 buf_offset){ +R_API RBinJavaAttrInfo* r_bin_java_rtv_annotations_attr_new(ut8* buffer, ut64 sz, ut64 buf_offset){ ut32 i = 0; RBinJavaAttrInfo *attr = NULL; ut64 offset = 0; @@ -5958,7 +5935,7 @@ R_API RBinJavaAttrInfo * r_bin_java_rtv_annotations_attr_new(ut8* buffer, ut64 s attr->info.annotation_array.annotations = r_list_new(); for (i=0; i < attr->info.annotation_array.num_annotations; i++){ - RBinJavaAnnotation * annotation = r_bin_java_annotation_new(buffer+offset, sz-offset, buf_offset+offset); + RBinJavaAnnotation* annotation = r_bin_java_annotation_new(buffer+offset, sz-offset, buf_offset+offset); if (annotation == NULL){ } @@ -5972,7 +5949,7 @@ R_API RBinJavaAttrInfo * r_bin_java_rtv_annotations_attr_new(ut8* buffer, ut64 s return attr; } -R_API ut64 r_bin_java_annotation_array_calc_size(RBinJavaAnnotationsArray * annotation_array){ +R_API ut64 r_bin_java_annotation_array_calc_size(RBinJavaAnnotationsArray* annotation_array){ ut64 size = 0; RListIter *iter = NULL, *iter_tmp = NULL; RBinJavaAnnotation *annotation; @@ -5991,7 +5968,7 @@ R_API ut64 r_bin_java_annotation_array_calc_size(RBinJavaAnnotationsArray * anno return size; } -R_API ut64 r_bin_java_rtv_annotations_attr_calc_size(RBinJavaAttrInfo * attr){ +R_API ut64 r_bin_java_rtv_annotations_attr_calc_size(RBinJavaAttrInfo* attr){ ut64 size = 0; if (attr == NULL){ // TODO eprintf allocation fail @@ -6002,7 +5979,7 @@ R_API ut64 r_bin_java_rtv_annotations_attr_calc_size(RBinJavaAttrInfo * attr){ } -R_API RBinJavaAttrInfo * r_bin_java_rti_annotations_attr_new(ut8* buffer, ut64 sz, ut64 buf_offset){ +R_API RBinJavaAttrInfo* r_bin_java_rti_annotations_attr_new(ut8* buffer, ut64 sz, ut64 buf_offset){ ut32 i = 0; RBinJavaAttrInfo *attr = NULL; ut64 offset = 0; @@ -6017,7 +5994,7 @@ R_API RBinJavaAttrInfo * r_bin_java_rti_annotations_attr_new(ut8* buffer, ut64 offset += 2; attr->info.annotation_array.annotations = r_list_new(); for (i=0; i < attr->info.rtv_annotations_attr.num_annotations; i++){ - RBinJavaAnnotation * annotation = r_bin_java_annotation_new(buffer+offset, sz-offset, buf_offset+offset); + RBinJavaAnnotation* annotation = r_bin_java_annotation_new(buffer+offset, sz-offset, buf_offset+offset); if (annotation == NULL){ } @@ -6030,7 +6007,7 @@ R_API RBinJavaAttrInfo * r_bin_java_rti_annotations_attr_new(ut8* buffer, ut64 return attr; } -R_API ut64 r_bin_java_rti_annotations_attr_calc_size(RBinJavaAttrInfo * attr){ +R_API ut64 r_bin_java_rti_annotations_attr_calc_size(RBinJavaAttrInfo* attr){ ut64 size = 0; if (attr == NULL){ // TODO eprintf allocation fail @@ -6095,7 +6072,7 @@ R_API void r_bin_java_print_rti_annotations_attr_summary(RBinJavaAttrInfo *attr) } } -R_API ut64 r_bin_java_rtip_annotations_attr_calc_size(RBinJavaAttrInfo * attr){ +R_API ut64 r_bin_java_rtip_annotations_attr_calc_size(RBinJavaAttrInfo* attr){ ut64 size = 0; RListIter *iter = NULL, *iter_tmp = NULL; RBinJavaAnnotationsArray *annotation_array; @@ -6112,7 +6089,7 @@ R_API ut64 r_bin_java_rtip_annotations_attr_calc_size(RBinJavaAttrInfo * attr){ return size; } -R_API RBinJavaAttrInfo * r_bin_java_rtip_annotations_attr_new(ut8* buffer, ut64 sz, ut64 buf_offset){ +R_API RBinJavaAttrInfo* r_bin_java_rtip_annotations_attr_new(ut8* buffer, ut64 sz, ut64 buf_offset){ ut32 i = 0; RBinJavaAttrInfo *attr = NULL; ut64 offset = 0; @@ -6145,7 +6122,7 @@ R_API RBinJavaAttrInfo * r_bin_java_rtip_annotations_attr_new(ut8* buffer, ut64 -R_API RBinJavaAttrInfo * r_bin_java_rtvp_annotations_attr_new(ut8* buffer, ut64 sz, ut64 buf_offset){ +R_API RBinJavaAttrInfo* r_bin_java_rtvp_annotations_attr_new(ut8* buffer, ut64 sz, ut64 buf_offset){ ut32 i = 0; RBinJavaAttrInfo *attr = NULL; ut64 offset = 0; @@ -6178,19 +6155,17 @@ R_API RBinJavaAttrInfo * r_bin_java_rtvp_annotations_attr_new(ut8* buffer, ut64 return attr; } -R_API ut64 r_bin_java_rtvp_annotations_attr_calc_size(RBinJavaAttrInfo * attr){ +R_API ut64 r_bin_java_rtvp_annotations_attr_calc_size(RBinJavaAttrInfo* attr){ ut64 size = 0; RListIter *iter = NULL, *iter_tmp = NULL; RBinJavaAnnotationsArray *annotation_array; - if (attr == NULL){ - // TODO eprintf allocation fail - return size; - } - //attr->info.rtip_annotations_attr.num_parameters = buffer[offset]; + if (!attr) return size; size += (6+ 1); - r_list_foreach_safe(attr->info.rtvp_annotations_attr.parameter_annotations, iter, iter_tmp, annotation_array){ - if(annotation_array) - size += r_bin_java_annotation_array_calc_size(annotation_array); + r_list_foreach_safe (attr->info.rtvp_annotations_attr.parameter_annotations, + iter, iter_tmp, annotation_array) { + if (annotation_array) + size += r_bin_java_annotation_array_calc_size ( + annotation_array); } return size; } @@ -6199,7 +6174,7 @@ R_API ut64 r_bin_java_rtvp_annotations_attr_calc_size(RBinJavaAttrInfo * attr){ R_API void r_bin_java_rtvp_annotations_attr_free(RBinJavaAttrInfo *attr){ RBinJavaAnnotationsArray *annotation_array = NULL; RListIter *iter = NULL, *iter_tmp = NULL; - if(attr && attr->type == R_BIN_JAVA_ATTR_TYPE_RUNTIME_VISIBLE_PARAMETER_ANNOTATION_ATTR){ + if (attr && attr->type == R_BIN_JAVA_ATTR_TYPE_RUNTIME_VISIBLE_PARAMETER_ANNOTATION_ATTR){ if (attr->info.rtvp_annotations_attr.parameter_annotations){ r_list_foreach_safe(attr->info.rtvp_annotations_attr.parameter_annotations, iter, iter_tmp, annotation_array){ if (annotation_array) @@ -6301,4 +6276,4 @@ R_API RBinJavaCPTypeObj *r_bin_java_find_cp_ref_info(ut16 name_and_type_idx){ } } return result; -} \ No newline at end of file +} diff --git a/shlr/java/class.h b/shlr/java/class.h index ea99a42198..cdcb1cd765 100644 --- a/shlr/java/class.h +++ b/shlr/java/class.h @@ -1,6 +1,6 @@ /* radare - LGPL - Copyright 2007-2013 - pancake class.h rewrite: Adam Pridgen -*/ + */ #ifndef _INCLUDE_JAVA_CLASS_H_ #define _INCLUDE_JAVA_CLASS_H_ @@ -21,12 +21,9 @@ #define RBIN_JAVA_LONG(x,y) ( ((ut64) R_BIN_JAVA_UINT (x, y) << 32) | ((ut64)R_BIN_JAVA_UINT (x, y+4) & 0xffffffff)) //#define R_BIN_JAVA_DOUBLE(x,y) ((double)RBIN_JAVA_LONG(x,y)) - //#define R_BIN_JAVA_SWAPUSHORT(x) ((ut16)((x<<8)|((x>>8)&0x00FF))) - - // Intentionally not R_API void copy_type_info_to_stack_frame_list(RList *type_list, RList *sf_list); void copy_type_info_to_stack_frame_list_up_to_idx(RList *type_list, RList *sf_list, ut64 idx); @@ -47,12 +44,12 @@ typedef enum{ R_BIN_JAVA_METHOD_ACC_SYNCHRONIZED = 0x0020, R_BIN_JAVA_METHOD_ACC_BRIDGE = 0x0040, R_BIN_JAVA_METHOD_ACC_VARARGS = 0x0080, - + R_BIN_JAVA_METHOD_ACC_NATIVE = 0x0100, R_BIN_JAVA_METHOD_ACC_INTERFACE = 0x0200, R_BIN_JAVA_METHOD_ACC_ABSTRACT = 0x0400, R_BIN_JAVA_METHOD_ACC_STRICT= 0x0800, - + R_BIN_JAVA_METHOD_ACC_SYNTHETIC = 0x1000, R_BIN_JAVA_METHOD_ACC_ANNOTATION = 0x2000, R_BIN_JAVA_METHOD_ACC_ENUM = 0x4000 @@ -68,12 +65,12 @@ typedef enum{ R_BIN_JAVA_CLASS_ACC_SUPER = 0x0020, R_BIN_JAVA_CLASS_ACC_BRIDGE = 0x0040, R_BIN_JAVA_CLASS_ACC_VARARGS = 0x0080, - + R_BIN_JAVA_CLASS_ACC_NATIVE = 0x0100, R_BIN_JAVA_CLASS_ACC_INTERFACE = 0x0200, R_BIN_JAVA_CLASS_ACC_ABSTRACT = 0x0400, R_BIN_JAVA_CLASS_ACC_STRICT= 0x0800, - + R_BIN_JAVA_CLASS_ACC_SYNTHETIC = 0x1000, R_BIN_JAVA_CLASS_ACC_ANNOTATION = 0x2000, R_BIN_JAVA_CLASS_ACC_ENUM = 0x4000 @@ -158,11 +155,6 @@ typedef enum { R_BIN_JAVA_ATTR_TYPE_FAILED_ATTR } R_BIN_JAVA_ATTR_TYPE; - - - - - typedef enum{ R_BIN_JAVA_STACKMAP_TOP = 0, R_BIN_JAVA_STACKMAP_INTEGER, @@ -174,9 +166,7 @@ typedef enum{ R_BIN_JAVA_STACKMAP_OBJECT, R_BIN_JAVA_STACKMAP_UNINIT, R_BIN_JAVA_STACKMAP_UNKNOWN -}R_BIN_JAVA_STACKMAP_TYPE; - - +} R_BIN_JAVA_STACKMAP_TYPE; typedef enum { R_BIN_JAVA_FIELD_TYPE_FIELD = 0, @@ -184,7 +174,6 @@ typedef enum { R_BIN_JAVA_FIELD_TYPE_INTERFACE } R_BIN_JAVA_FIELD_TYPE; - typedef struct r_bin_java_meta{ ut64 file_offset; void *type_info; @@ -218,7 +207,7 @@ typedef struct r_bin_java_interfacemethodref_info_t { typedef struct r_bin_java_methodhandle_info_t { ut8 reference_kind; - ut16 reference_index; + ut16 reference_index; } RBinJavaCPTypeMethodHandle; typedef struct r_bin_java_methodtype_info_t { @@ -226,11 +215,10 @@ typedef struct r_bin_java_methodtype_info_t { } RBinJavaCPTypeMethodType; typedef struct r_bin_java_invokedynamic_info_t { - ut16 bootstrap_method_attr_index; - ut16 name_and_type_index; + ut16 bootstrap_method_attr_index; + ut16 name_and_type_index; } RBinJavaCPTypeInvokeDynamic; - /* Primitive Type Informations */ typedef struct r_bin_java_string_info_t { @@ -238,15 +226,15 @@ typedef struct r_bin_java_string_info_t { } RBinJavaCPTypeString; typedef struct r_bin_java_integer_info_t { - union{ + union { ut8 raw[4]; ut32 dword; } bytes; - + } RBinJavaCPTypeInteger; typedef struct r_bin_java_float_info_t { - union{ + union { ut8 raw[4]; ut32 dword; } bytes; @@ -254,7 +242,7 @@ typedef struct r_bin_java_float_info_t { typedef struct r_bin_java_long_info_t { - union{ + union { ut8 raw[8]; ut64 qword; struct{ @@ -265,7 +253,7 @@ typedef struct r_bin_java_long_info_t { } RBinJavaCPTypeLong; typedef struct r_bin_java_double_info_t { - union{ + union { ut8 raw[8]; struct{ ut32 high; @@ -290,7 +278,7 @@ typedef struct r_bin_java_utf8_info_t { typedef struct r_bin_java_cp_object_t { - RBinJavaMetaInfo *metas; + RBinJavaMetaInfo *metas; ut64 file_offset; ut8 tag; union { @@ -298,7 +286,7 @@ typedef struct r_bin_java_cp_object_t { RBinJavaCPTypeMethodRef cp_method; RBinJavaCPTypeFieldRef cp_field; RBinJavaCPTypeInterfaceMethodRef cp_interface; - + RBinJavaCPTypeString cp_string; RBinJavaCPTypeInteger cp_integer; RBinJavaCPTypeFloat cp_float; @@ -311,8 +299,8 @@ typedef struct r_bin_java_cp_object_t { RBinJavaCPTypeMethodType cp_method_type; RBinJavaCPTypeInvokeDynamic cp_invoke_dynamic; } info; - char * name; - ut8 * value; + char* name; + ut8* value; } RBinJavaCPTypeObj; @@ -324,15 +312,15 @@ typedef struct r_bin_java_stack_map_frame_t { // attribute StackMap ut8 type; struct r_bin_java_stack_map_frame_t *p_stack_frame; - + RBinJavaMetaInfo *metas; ut32 offset_delta; ut32 number_of_locals; // list of verification objects; - RList * local_items; + RList* local_items; ut32 number_of_stack_items; // list of verification objects; - RList * stack_items; + RList* stack_items; }RBinJavaStackMapFrame; @@ -361,33 +349,33 @@ typedef struct r_bin_java_boot_strap_method_t{ ut64 file_offset; ut64 size; ut16 bootstrap_method_ref; - ut16 num_bootstrap_arguments; - // List of RBinJavaCodeAttribute - RList *bootstrap_arguments; + ut16 num_bootstrap_arguments; + // List of RBinJavaCodeAttribute + RList *bootstrap_arguments; } RBinJavaBootStrapMethod; typedef struct r_bin_java_boot_strap_methods_t{ - ut16 num_bootstrap_methods; - RList *bootstrap_methods; + ut16 num_bootstrap_methods; + RList *bootstrap_methods; }RBinJavaBootstrapMethodsAttr; typedef struct { - ut16 type_name_idx; - ut16 const_name_idx; - RBinJavaCPTypeObj *const_name_cp_obj; - RBinJavaCPTypeObj *type_name_cp_obj; + ut16 type_name_idx; + ut16 const_name_idx; + RBinJavaCPTypeObj *const_name_cp_obj; + RBinJavaCPTypeObj *type_name_cp_obj; }RBinJavaEnumConstValue; typedef struct { - ut16 const_value_idx; - RBinJavaCPTypeObj *const_value_cp_obj; + ut16 const_value_idx; + RBinJavaCPTypeObj *const_value_cp_obj; }RBinJavaConstValue; typedef struct { - ut16 class_info_idx; - RBinJavaCPTypeObj *class_info_cp_obj;; + ut16 class_info_idx; + RBinJavaCPTypeObj *class_info_cp_obj;; }RBinJavaClassInfoValue; typedef struct r_bin_java_element_value_ary_t{ @@ -399,10 +387,10 @@ typedef struct r_bin_java_element_value_ary_t{ typedef struct r_bin_java_annotation_t{ - ut64 size; - ut16 type_idx; - ut16 num_element_value_pairs; - RList *element_value_pairs; + ut64 size; + ut16 type_idx; + ut16 num_element_value_pairs; + RList *element_value_pairs; }RBinJavaAnnotation; @@ -423,7 +411,7 @@ typedef enum { R_BIN_JAVA_EV_TAG_CLASS = 'c', R_BIN_JAVA_EV_TAG_ANNOTATION = '@', -// R_BIN_JAVA_EV_TAG_CLASSNAME = 'L', + // R_BIN_JAVA_EV_TAG_CLASSNAME = 'L', R_BIN_JAVA_EV_TAG_UNKNOWN = 0xff, } R_BIN_JAVA_EV_TAG; @@ -432,24 +420,24 @@ typedef enum { typedef struct r_bin_java_element_value_t { RBinJavaMetaInfo *metas; - ut64 size; - ut8 tag; - ut64 file_offset; - union { - RBinJavaConstValue const_value; - RBinJavaEnumConstValue enum_const_value; - RBinJavaClassInfoValue class_value; - RBinJavaAnnotation annotation_value; - RBinJavaElementValueArray array_value; - } value; + ut64 size; + ut8 tag; + ut64 file_offset; + union { + RBinJavaConstValue const_value; + RBinJavaEnumConstValue enum_const_value; + RBinJavaClassInfoValue class_value; + RBinJavaAnnotation annotation_value; + RBinJavaElementValueArray array_value; + } value; }RBinJavaElementValue; typedef struct r_bin_java_element_value_pair_t{ ut64 file_offset; ut64 size; ut16 element_name_idx; - char * name; - RBinJavaElementValue *value; + char* name; + RBinJavaElementValue *value; }RBinJavaElementValuePair; @@ -474,35 +462,30 @@ typedef RBinJavaRuntimeVisibleParameterAnnotationsAttr RBinJavaRuntimeInvisibleP typedef struct r_bin_java_parameter_annotations_attr_t { RBinJavaElementValue *default_value; -}RBinJavaAnnotationDefaultAttr; - - +} RBinJavaAnnotationDefaultAttr; typedef struct r_bin_java_stack_map_table_attr_t { // attribute StackMap ut32 code_size; ut32 number_of_entries; - RList * stack_map_frame_entries; -}RBinJavaStackMapTableAttr; + RList* stack_map_frame_entries; +} RBinJavaStackMapTableAttr; typedef struct r_bin_java_signature_attr_t { ut16 signature_idx; char *signature; -}RBinJavaSignatureAttr; +} RBinJavaSignatureAttr; typedef struct r_bin_java_stack_verification_t{ ut64 file_offset; ut64 size; ut8 tag; char *name; - union{ + union { ut16 obj_val_cp_idx; ut16 uninit_offset; } info; -}RBinJavaVerificationObj; - - - +} RBinJavaVerificationObj; typedef struct r_bin_java_fm_t { RBinJavaMetaInfo *metas; @@ -516,20 +499,14 @@ typedef struct r_bin_java_fm_t { ut16 flags; ut16 name_idx; ut16 descriptor_idx; - + RBinJavaCPTypeObj *field_ref_cp_obj; ut16 attr_count; RList *attributes; ut64 method_number; - } RBinJavaField; - - - - - typedef struct r_bin_java_interface_info_desc_t{ char *name; ut64 size; @@ -538,19 +515,16 @@ typedef struct r_bin_java_interface_info_desc_t{ RBinJavaCPTypeObj *cp_class; } RBinJavaInterfaceInfo; - - typedef struct r_bin_java_attr_constant_t { ut16 constantvalue_idx; } RBinJavaConstantValueAttr; - typedef struct r_bin_java_attr_exceptions_t { ut16 number_of_exceptions; - ut16 * exception_idx_table; + ut16* exception_idx_table; } RBinJavaExceptionsAttr; - typedef struct r_bin_java_attr_exception_table_entry_t { +typedef struct r_bin_java_attr_exception_table_entry_t { ut64 file_offset; ut16 start_pc; ut16 end_pc; @@ -569,7 +543,7 @@ typedef struct r_bin_java_attr_code_t { ut32 exception_table_length; RList *exception_table; // RBinJavaExceptionTableEntry * - + ut16 attributes_count; RList *attributes; RBinJavaStackMapFrame *implicit_frame; @@ -579,7 +553,7 @@ typedef struct r_bin_java_attr_code_t { typedef struct r_bin_java_attr_inner_classes_t { ut16 number_of_classes; - RList * classes; + RList* classes; } RBinJavaInnerClassesAttribute; @@ -598,9 +572,9 @@ typedef struct r_bin_java_line_number_table_t{ typedef struct r_bin_java_attr_linenum_t { - ut64 file_offset; - ut16 line_number_table_length; - RList * line_number_table; // RBinJavaLineNumberTable* + ut64 file_offset; + ut16 line_number_table_length; + RList* line_number_table; // RBinJavaLineNumberTable* }RBinJavaLineNumberTableAttribute; typedef struct r_bin_java_attr_localvariabletype_t{ @@ -617,8 +591,8 @@ typedef struct r_bin_java_attr_localvariabletype_t{ }RBinJavaLocalVariableTypeAttribute; typedef struct r_bin_java_attr_localvariable_type_table_t { - ut16 table_length; - RList * local_variable_table; // RBinJavaLocalVariable + ut16 table_length; + RList* local_variable_table; // RBinJavaLocalVariable }RBinJavaLocalVariableTypeTableAttribute; @@ -638,17 +612,17 @@ typedef struct r_bin_java_attr_localvariable_t{ typedef struct r_bin_java_attr_localvariable_table_t { - ut16 table_length; - RList * local_variable_table; // RBinJavaLocalVariable + ut16 table_length; + RList* local_variable_table; // RBinJavaLocalVariable }RBinJavaLocalVariableTableAttribute; typedef struct r_bin_java_attr_t { ut8 *bytes; ut64 pos; ut64 size; - char *name; - ut64 file_offset; - RBinJavaMetaInfo *metas; + char *name; + ut64 file_offset; + RBinJavaMetaInfo *metas; int type; ut16 name_idx; // ut16 attribute_name_idx; ut32 length; //ut16 attribute_length; @@ -663,7 +637,7 @@ typedef struct r_bin_java_attr_t { RBinJavaLocalVariableTableAttribute local_variable_table_attr; RBinJavaLocalVariableTypeTableAttribute local_variable_type_table_attr; RBinJavaInnerClassesAttribute inner_classes_attr; - + RBinJavaAnnotationsArray annotation_array; RBinJavaRuntimeVisibleAnnotationsAttr rtv_annotations_attr; RBinJavaRuntimeInvisibleAnnotationsAttr rti_annotations_attr; @@ -718,8 +692,8 @@ typedef struct r_bin_java_lines_t { typedef struct r_bin_java_obj_t { struct r_bin_java_classfile_t cf; - RBinJavaClass2 * cf2; - + RBinJavaClass2* cf2; + ut32 cp_offset, cp_size, cp_count; ut32 fields_offset, fields_size, fields_count; @@ -732,7 +706,7 @@ typedef struct r_bin_java_obj_t { const char* file; RBinJavaLines lines; struct r_buf_t* b; - + // These state variables are used for parsing the appropriate number of bytes // when readin uoffset, ustack, ulocalvar values ut8 ulocalvar_sz; @@ -752,31 +726,31 @@ typedef struct r_bin_java_obj_t { int fsym; int fsymsz; - + RBinJavaField *main; RBinJavaAttrInfo *main_code_attr; RBinJavaField *entrypoint; RBinJavaAttrInfo *entrypoint_code_attr; - //RList * classes_list; // TODO: Not sure if this is necessary. it would be the inner classes info. - RList * fields_list; - RList * methods_list; - RList * cp_list; - RList * interfaces_list; - RList * attributes; + //RList* classes_list; // TODO: Not sure if this is necessary. it would be the inner classes info. + RList* fields_list; + RList* methods_list; + RList* cp_list; + RList* interfaces_list; + RList* attributes; } RBinJavaObj; -R_API RList * r_bin_java_get_sections(RBinJavaObj *bin); -R_API RList * r_bin_java_get_fields(RBinJavaObj *bin); -R_API char * r_bin_java_get_version(RBinJavaObj* bin); +R_API RList* r_bin_java_get_sections(RBinJavaObj *bin); +R_API RList* r_bin_java_get_fields(RBinJavaObj *bin); +R_API char* r_bin_java_get_version(RBinJavaObj* bin); R_API ut64 r_bin_java_get_entrypoint(RBinJavaObj* bin); R_API ut64 r_bin_java_get_main(RBinJavaObj* bin); -R_API RList * r_bin_java_get_symbols(RBinJavaObj* bin); -R_API RList * r_bin_java_get_strings(RBinJavaObj* bin); -R_API void * r_bin_java_free(RBinJavaObj* bin); -R_API RBinJavaObj * r_bin_java_new(const char* file); -R_API RBinJavaObj * r_bin_java_new_buf(struct r_buf_t * buf); +R_API RList* r_bin_java_get_symbols(RBinJavaObj* bin); +R_API RList* r_bin_java_get_strings(RBinJavaObj* bin); +R_API void* r_bin_java_free(RBinJavaObj* bin); +R_API RBinJavaObj* r_bin_java_new(const char* file); +R_API RBinJavaObj* r_bin_java_new_buf(struct r_buf_t* buf); @@ -790,7 +764,7 @@ typedef struct r_bin_java_object_allocs_t { typedef struct r_bin_java_attr_allocs_t { //void (*new_obj) (RBinJavaObj *bin, RBinJavaAttrInfo *obj, ut64 offset) ; - RBinJavaAttrInfo * (*new_obj)(ut8 * buffer, ut64 sz, ut64 buf_offset); + RBinJavaAttrInfo* (*new_obj)(ut8* buffer, ut64 sz, ut64 buf_offset); void (*delete_obj) (RBinJavaAttrInfo *obj); void (*print_summary) (RBinJavaAttrInfo *obj); ut64 (*calc_size)(RBinJavaAttrInfo *obj); @@ -803,13 +777,13 @@ typedef struct r_bin_java_ver_allocs_t { } RBinJavaVerInfoObjectAllocs; typedef struct r_bin_java_stack_frame_allocs_t { - RBinJavaStackMapFrame * (*new_obj) (RBinJavaObj *bin, ut64 offset) ; + RBinJavaStackMapFrame* (*new_obj) (RBinJavaObj *bin, ut64 offset) ; void (*delete_obj) (RBinJavaStackMapFrame *obj); void (*print_summary) (RBinJavaStackMapFrame *obj); } RBinJavaStackMapFrameObjectAllocs; typedef struct { - RBinJavaElementValue * (*new_obj) (RBinJavaObj *bin, ut64 offset) ; + RBinJavaElementValue* (*new_obj) (RBinJavaObj *bin, ut64 offset) ; void (*delete_obj) (RBinJavaElementValue *obj); void (*print_summary) (RBinJavaElementValue *obj); } RBinJavaElementValueObjectAllocs; @@ -842,7 +816,7 @@ typedef struct r_bin_java_stack_frame_meta_t { typedef struct{ char* name; ut8 tag; - RBinJavaElementValueObjectAllocs * allocs; + RBinJavaElementValueObjectAllocs* allocs; } RBinJavaElementValueMetas; typedef struct{ @@ -850,7 +824,7 @@ typedef struct{ ut8 tag; } RBinJavaRefMetas; - + inline ut32 r_bin_java_swap_uint(ut32 x); inline ut16 r_bin_java_swap_ushort(ut16 x); inline ut32 r_bin_java_read_int(RBinJavaObj *bin, ut64 offset); @@ -861,42 +835,42 @@ inline ut16 r_bin_java_read_short_from_buffer(ut8 *buf, ut64 offset); -R_API ut8 * r_bin_java_get_attr_buf(RBinJavaObj *bin, ut64 offset, ut64 sz); -R_API char * r_bin_java_get_name_from_cp_item_list(RList *cp_list, ut64 idx); -R_API char * r_bin_java_get_utf8_from_cp_item_list(RList *cp_list, ut64 idx); -R_API char * r_bin_java_get_desc_from_cp_item_list(RList *cp_list, ut64 idx); -R_API char * r_bin_java_get_item_name_from_cp_item_list(RList *cp_list, RBinJavaCPTypeObj *obj); -R_API char * r_bin_java_get_item_desc_from_cp_item_list(RList *cp_list, RBinJavaCPTypeObj *obj); -R_API RBinJavaCPTypeObj * r_bin_java_get_item_from_cp_item_list(RList *cp_list, ut64 idx); +R_API ut8* r_bin_java_get_attr_buf(RBinJavaObj *bin, ut64 offset, ut64 sz); +R_API char* r_bin_java_get_name_from_cp_item_list(RList *cp_list, ut64 idx); +R_API char* r_bin_java_get_utf8_from_cp_item_list(RList *cp_list, ut64 idx); +R_API char* r_bin_java_get_desc_from_cp_item_list(RList *cp_list, ut64 idx); +R_API char* r_bin_java_get_item_name_from_cp_item_list(RList *cp_list, RBinJavaCPTypeObj *obj); +R_API char* r_bin_java_get_item_desc_from_cp_item_list(RList *cp_list, RBinJavaCPTypeObj *obj); +R_API RBinJavaCPTypeObj* r_bin_java_get_item_from_cp_item_list(RList *cp_list, ut64 idx); -R_API char * r_bin_java_get_name_from_bin_cp_list(RBinJavaObj *bin, ut64 idx); -R_API char * r_bin_java_get_utf8_from_bin_cp_list(RBinJavaObj *bin, ut64 idx); -R_API char * r_bin_java_get_desc_from_bin_cp_list(RBinJavaObj *bin, ut64 idx); -R_API char * r_bin_java_get_item_name_from_bin_cp_list(RBinJavaObj *bin, RBinJavaCPTypeObj *obj); -R_API char * r_bin_java_get_item_desc_from_bin_cp_list(RBinJavaObj *bin, RBinJavaCPTypeObj *obj); -R_API RBinJavaCPTypeObj * r_bin_java_get_item_from_bin_cp_list(RBinJavaObj *bin, ut64 idx); +R_API char* r_bin_java_get_name_from_bin_cp_list(RBinJavaObj *bin, ut64 idx); +R_API char* r_bin_java_get_utf8_from_bin_cp_list(RBinJavaObj *bin, ut64 idx); +R_API char* r_bin_java_get_desc_from_bin_cp_list(RBinJavaObj *bin, ut64 idx); +R_API char* r_bin_java_get_item_name_from_bin_cp_list(RBinJavaObj *bin, RBinJavaCPTypeObj *obj); +R_API char* r_bin_java_get_item_desc_from_bin_cp_list(RBinJavaObj *bin, RBinJavaCPTypeObj *obj); +R_API RBinJavaCPTypeObj* r_bin_java_get_item_from_bin_cp_list(RBinJavaObj *bin, ut64 idx); // Allocs for objects -R_API RBinJavaCPTypeObj * r_bin_java_class_cp_new(RBinJavaObj *bin, ut8* buffer, ut64 offset); -R_API RBinJavaCPTypeObj * r_bin_java_fieldref_cp_new(RBinJavaObj *bin, ut8* buffer, ut64 offset); -R_API RBinJavaCPTypeObj * r_bin_java_methodref_cp_new(RBinJavaObj *bin, ut8* buffer, ut64 offset); -R_API RBinJavaCPTypeObj * r_bin_java_interfacemethodref_cp_new(RBinJavaObj *bin, ut8* buffer, ut64 offset); -R_API RBinJavaCPTypeObj * r_bin_java_name_and_type_cp_new(RBinJavaObj *bin, ut8* buffer, ut64 offset); +R_API RBinJavaCPTypeObj* r_bin_java_class_cp_new(RBinJavaObj *bin, ut8* buffer, ut64 offset); +R_API RBinJavaCPTypeObj* r_bin_java_fieldref_cp_new(RBinJavaObj *bin, ut8* buffer, ut64 offset); +R_API RBinJavaCPTypeObj* r_bin_java_methodref_cp_new(RBinJavaObj *bin, ut8* buffer, ut64 offset); +R_API RBinJavaCPTypeObj* r_bin_java_interfacemethodref_cp_new(RBinJavaObj *bin, ut8* buffer, ut64 offset); +R_API RBinJavaCPTypeObj* r_bin_java_name_and_type_cp_new(RBinJavaObj *bin, ut8* buffer, ut64 offset); -R_API RBinJavaCPTypeObj * r_bin_java_string_cp_new(RBinJavaObj *bin, ut8* buffer, ut64 offset); -R_API RBinJavaCPTypeObj * r_bin_java_integer_cp_new(RBinJavaObj *bin, ut8* buffer, ut64 offset); -R_API RBinJavaCPTypeObj * r_bin_java_float_cp_new(RBinJavaObj *bin, ut8* buffer, ut64 offset); -R_API RBinJavaCPTypeObj * r_bin_java_long_cp_new(RBinJavaObj *bin, ut8* buffer, ut64 offset); -R_API RBinJavaCPTypeObj * r_bin_java_double_cp_new(RBinJavaObj *bin, ut8* buffer, ut64 offset); -R_API RBinJavaCPTypeObj * r_bin_java_utf8_cp_new(RBinJavaObj *bin, ut8* buffer, ut64 offset); -R_API RBinJavaCPTypeObj * r_bin_java_do_nothing_new(RBinJavaObj *bin, ut8* buffer, ut64 sz); -R_API RBinJavaCPTypeObj * r_bin_java_clone_cp_item(RBinJavaCPTypeObj *obj); -R_API RBinJavaCPTypeObj * r_bin_java_clone_cp_idx(RBinJavaObj *bin, ut32 idx); +R_API RBinJavaCPTypeObj* r_bin_java_string_cp_new(RBinJavaObj *bin, ut8* buffer, ut64 offset); +R_API RBinJavaCPTypeObj* r_bin_java_integer_cp_new(RBinJavaObj *bin, ut8* buffer, ut64 offset); +R_API RBinJavaCPTypeObj* r_bin_java_float_cp_new(RBinJavaObj *bin, ut8* buffer, ut64 offset); +R_API RBinJavaCPTypeObj* r_bin_java_long_cp_new(RBinJavaObj *bin, ut8* buffer, ut64 offset); +R_API RBinJavaCPTypeObj* r_bin_java_double_cp_new(RBinJavaObj *bin, ut8* buffer, ut64 offset); +R_API RBinJavaCPTypeObj* r_bin_java_utf8_cp_new(RBinJavaObj *bin, ut8* buffer, ut64 offset); +R_API RBinJavaCPTypeObj* r_bin_java_do_nothing_new(RBinJavaObj *bin, ut8* buffer, ut64 sz); +R_API RBinJavaCPTypeObj* r_bin_java_clone_cp_item(RBinJavaCPTypeObj *obj); +R_API RBinJavaCPTypeObj* r_bin_java_clone_cp_idx(RBinJavaObj *bin, ut32 idx); -R_API RBinJavaCPTypeObj * r_bin_java_methodhandle_cp_new(RBinJavaObj *bin, ut8* buffer, ut64 sz); -R_API RBinJavaCPTypeObj * r_bin_java_methodtype_cp_new(RBinJavaObj *bin, ut8* buffer, ut64 sz); -R_API RBinJavaCPTypeObj * r_bin_java_invokedynamic_cp_new(RBinJavaObj *bin, ut8* buffer, ut64 sz); +R_API RBinJavaCPTypeObj* r_bin_java_methodhandle_cp_new(RBinJavaObj *bin, ut8* buffer, ut64 sz); +R_API RBinJavaCPTypeObj* r_bin_java_methodtype_cp_new(RBinJavaObj *bin, ut8* buffer, ut64 sz); +R_API RBinJavaCPTypeObj* r_bin_java_invokedynamic_cp_new(RBinJavaObj *bin, ut8* buffer, ut64 sz); @@ -925,20 +899,20 @@ R_API void r_bin_java_do_nothing_free(RBinJavaCPTypeObj *obj); // handle the reading of the various field -R_API RBinJavaAttrInfo * r_bin_java_read_next_attr(RBinJavaObj *bin, ut64 offset); -R_API RBinJavaCPTypeObj * r_bin_java_read_next_constant_pool_item(RBinJavaObj *bin, ut64 offset); +R_API RBinJavaAttrInfo* r_bin_java_read_next_attr(RBinJavaObj *bin, ut64 offset); +R_API RBinJavaCPTypeObj* r_bin_java_read_next_constant_pool_item(RBinJavaObj *bin, ut64 offset); -R_API RBinJavaAttrInfo * r_bin_java_get_method_code_attribute(RBinJavaField *method); +R_API RBinJavaAttrInfo* r_bin_java_get_method_code_attribute(RBinJavaField *method); -R_API RBinJavaAttrMetas * r_bin_java_get_attr_type_by_name(ut8 *name); +R_API RBinJavaAttrMetas* r_bin_java_get_attr_type_by_name(ut8 *name); -R_API RBinJavaCPTypeObj * r_bin_java_get_java_null_cp(); +R_API RBinJavaCPTypeObj* r_bin_java_get_java_null_cp(); -R_API RBinJavaClass2 * r_bin_java_read_class_file2(RBinJavaObj *bin, ut64 offset); +R_API RBinJavaClass2* r_bin_java_read_class_file2(RBinJavaObj *bin, ut64 offset); -R_API RBinJavaAttrInfo * r_bin_java_get_attr_from_field(RBinJavaField *field, R_BIN_JAVA_ATTR_TYPE attr_type, ut32 pos ); +R_API RBinJavaAttrInfo* r_bin_java_get_attr_from_field(RBinJavaField *field, R_BIN_JAVA_ATTR_TYPE attr_type, ut32 pos ); // free bin lists @@ -990,43 +964,33 @@ R_API void r_bin_java_print_methodtype_cp_summary(RBinJavaCPTypeObj* obj); R_API void r_bin_java_print_invokedynamic_cp_summary(RBinJavaCPTypeObj* obj); -R_API RBinJavaCPTypeObj * r_bin_java_unknown_cp_new(RBinJavaObj *bin, ut8* buffer, ut64 sz); +R_API RBinJavaCPTypeObj* r_bin_java_unknown_cp_new(RBinJavaObj *bin, ut8* buffer, ut64 sz); -R_API RBinJavaInterfaceInfo * r_bin_java_interface_new(RBinJavaObj *bin, ut8 *buf, ut64 sz); -R_API RBinJavaInterfaceInfo * r_bin_java_read_next_interface_item(RBinJavaObj *bin, ut64 offset); +R_API RBinJavaInterfaceInfo* r_bin_java_interface_new(RBinJavaObj *bin, ut8 *buf, ut64 sz); +R_API RBinJavaInterfaceInfo* r_bin_java_read_next_interface_item(RBinJavaObj *bin, ut64 offset); -R_API void r_bin_java_interface_free(R_API RBinJavaInterfaceInfo *obj); +R_API void r_bin_java_interface_free(RBinJavaInterfaceInfo *obj); -R_API void r_bin_java_stack_frame_free(RBinJavaStackMapFrame * obj); -R_API void r_bin_java_stack_map_table_attr_free(RBinJavaAttrInfo * attr); -R_API void r_bin_java_verification_info_free(RBinJavaVerificationObj * obj); +R_API void r_bin_java_stack_frame_free(RBinJavaStackMapFrame* obj); +R_API void r_bin_java_stack_map_table_attr_free(RBinJavaAttrInfo* attr); +R_API void r_bin_java_verification_info_free(RBinJavaVerificationObj* obj); R_API void r_bin_java_print_stack_map_table_attr_summary(RBinJavaAttrInfo *obj); R_API void r_bin_java_print_stack_map_frame_summary(RBinJavaStackMapFrame *obj); R_API void r_bin_java_print_verification_info_summary(RBinJavaVerificationObj *obj); - - - - - - - - - - -R_API RBinJavaStackMapFrame * r_bin_java_build_stack_frame_from_local_variable_table(RBinJavaObj *bin, RBinJavaAttrInfo *attr); -R_API RBinJavaStackMapFrame * r_bin_java_stack_frame_new (ut8* buffer, ut64 sz, ut64 buf_offset); -R_API RBinJavaVerificationObj * r_bin_java_read_next_verification_info_new(ut8* buffer, ut64 sz, ut64 buf_offset); -R_API RBinJavaAnnotation * r_bin_java_annotation_new(ut8* buffer, ut64 sz, ut64 buf_offset); -R_API RBinJavaElementValuePair * r_bin_java_element_pair_new(ut8* buffer, ut64 sz, ut64 buf_offset); -R_API RBinJavaElementValue * r_bin_java_element_value_new(ut8* buffer, ut64 sz, ut64 buf_offset); -R_API RBinJavaBootStrapArgument * r_bin_java_bootstrap_method_argument_new(ut8* buffer, ut64 sz, ut64 buf_offset); -R_API RBinJavaBootStrapMethod * r_bin_java_bootstrap_method_new(ut8* buffer, ut64 sz, ut64 buf_offset); -R_API RBinJavaAnnotationsArray * r_bin_java_annotation_array_new(ut8* buffer, ut64 sz, ut64 buf_offset); -R_API RBinJavaElementValueMetas * r_bin_java_get_ev_meta_from_tag(ut8 tag); -R_API RBinJavaCPTypeMetas * r_bin_java_get_cp_meta_from_tag(ut8 tag); +R_API RBinJavaStackMapFrame* r_bin_java_build_stack_frame_from_local_variable_table(RBinJavaObj *bin, RBinJavaAttrInfo *attr); +R_API RBinJavaStackMapFrame* r_bin_java_stack_frame_new (ut8* buffer, ut64 sz, ut64 buf_offset); +R_API RBinJavaVerificationObj* r_bin_java_read_next_verification_info_new(ut8* buffer, ut64 sz, ut64 buf_offset); +R_API RBinJavaAnnotation* r_bin_java_annotation_new(ut8* buffer, ut64 sz, ut64 buf_offset); +R_API RBinJavaElementValuePair* r_bin_java_element_pair_new(ut8* buffer, ut64 sz, ut64 buf_offset); +R_API RBinJavaElementValue* r_bin_java_element_value_new(ut8* buffer, ut64 sz, ut64 buf_offset); +R_API RBinJavaBootStrapArgument* r_bin_java_bootstrap_method_argument_new(ut8* buffer, ut64 sz, ut64 buf_offset); +R_API RBinJavaBootStrapMethod* r_bin_java_bootstrap_method_new(ut8* buffer, ut64 sz, ut64 buf_offset); +R_API RBinJavaAnnotationsArray* r_bin_java_annotation_array_new(ut8* buffer, ut64 sz, ut64 buf_offset); +R_API RBinJavaElementValueMetas* r_bin_java_get_ev_meta_from_tag(ut8 tag); +R_API RBinJavaCPTypeMetas* r_bin_java_get_cp_meta_from_tag(ut8 tag); R_API void r_bin_java_annotation_default_attr_free(RBinJavaAttrInfo *attr); @@ -1034,7 +998,7 @@ R_API void r_bin_java_enclosing_methods_attr_free(RBinJavaAttrInfo *attr); R_API void r_bin_java_local_variable_type_table_attr_free(RBinJavaAttrInfo *attr); R_API void r_bin_java_signature_attr_free(RBinJavaAttrInfo *attr); R_API void r_bin_java_source_debug_attr_free(RBinJavaAttrInfo *attr); -R_API void r_bin_java_element_value_free(RBinJavaElementValue * element_value); +R_API void r_bin_java_element_value_free(RBinJavaElementValue* element_value); R_API void r_bin_java_element_pair_free(RBinJavaElementValuePair *ev_pair); R_API void r_bin_java_annotation_free(RBinJavaAnnotation *annotation); R_API void r_bin_java_rtv_annotations_attr_free(RBinJavaAttrInfo *attr); @@ -1077,29 +1041,29 @@ R_API void r_bin_java_print_rtip_annotations_attr_summary(RBinJavaAttrInfo *attr -R_API RBinJavaAttrInfo * r_bin_java_read_next_attr_from_buffer(ut8 *buffer, ut64 sz, ut64 buf_offset); +R_API RBinJavaAttrInfo* r_bin_java_read_next_attr_from_buffer(ut8 *buffer, ut64 sz, ut64 buf_offset); -R_API RBinJavaAttrInfo * r_bin_java_unknown_attr_new(ut8 *buf, ut64 sz, ut64 buf_offset); -R_API RBinJavaAttrInfo * r_bin_java_annotation_default_attr_new(ut8 *buf, ut64 sz, ut64 buf_offset); -R_API RBinJavaAttrInfo * r_bin_java_enclosing_methods_attr_new(ut8 *buf, ut64 sz, ut64 buf_offset); -R_API RBinJavaAttrInfo * r_bin_java_local_variable_type_table_attr_new(ut8 *buf, ut64 sz, ut64 buf_offset); -R_API RBinJavaAttrInfo * r_bin_java_signature_attr_new(ut8 *buf, ut64 sz, ut64 buf_offset); -R_API RBinJavaAttrInfo * r_bin_java_source_debug_attr_new(ut8 *buf, ut64 sz, ut64 buf_offset); -R_API RBinJavaAttrInfo * r_bin_java_bootstrap_methods_attr_new(ut8 *buf, ut64 sz, ut64 buf_offset); -R_API RBinJavaAttrInfo * r_bin_java_rtv_annotations_attr_new(ut8 *buf, ut64 sz, ut64 buf_offset); -R_API RBinJavaAttrInfo * r_bin_java_rti_annotations_attr_new(ut8 *buf, ut64 sz, ut64 buf_offset); -R_API RBinJavaAttrInfo * r_bin_java_rtvp_annotations_attr_new(ut8 *buf, ut64 sz, ut64 buf_offset); -R_API RBinJavaAttrInfo * r_bin_java_rtip_annotations_attr_new(ut8 *buf, ut64 sz, ut64 buf_offset); -R_API RBinJavaAttrInfo * r_bin_java_code_attr_new(ut8 *buf, ut64 sz, ut64 buf_offset); -R_API RBinJavaAttrInfo * r_bin_java_constant_value_attr_new(ut8 *buf, ut64 sz, ut64 buf_offset); -R_API RBinJavaAttrInfo * r_bin_java_deprecated_attr_new(ut8 *buf, ut64 sz, ut64 buf_offset); -R_API RBinJavaAttrInfo * r_bin_java_exceptions_attr_new(ut8 *buf, ut64 sz, ut64 buf_offset); -R_API RBinJavaAttrInfo * r_bin_java_inner_classes_attr_new(ut8 *buf, ut64 sz, ut64 buf_offset); -R_API RBinJavaAttrInfo * r_bin_java_line_number_table_attr_new(ut8 *buf, ut64 sz, ut64 buf_offset); -R_API RBinJavaAttrInfo * r_bin_java_local_variable_table_attr_new(ut8 *buf, ut64 sz, ut64 buf_offset); -R_API RBinJavaAttrInfo * r_bin_java_source_code_file_attr_new(ut8 *buf, ut64 sz, ut64 buf_offset); -R_API RBinJavaAttrInfo * r_bin_java_stack_map_table_attr_new(ut8 *buf, ut64 sz, ut64 buf_offset); -R_API RBinJavaAttrInfo * r_bin_java_synthetic_attr_new(ut8 *buf, ut64 sz, ut64 buf_offset); +R_API RBinJavaAttrInfo* r_bin_java_unknown_attr_new(ut8 *buf, ut64 sz, ut64 buf_offset); +R_API RBinJavaAttrInfo* r_bin_java_annotation_default_attr_new(ut8 *buf, ut64 sz, ut64 buf_offset); +R_API RBinJavaAttrInfo* r_bin_java_enclosing_methods_attr_new(ut8 *buf, ut64 sz, ut64 buf_offset); +R_API RBinJavaAttrInfo* r_bin_java_local_variable_type_table_attr_new(ut8 *buf, ut64 sz, ut64 buf_offset); +R_API RBinJavaAttrInfo* r_bin_java_signature_attr_new(ut8 *buf, ut64 sz, ut64 buf_offset); +R_API RBinJavaAttrInfo* r_bin_java_source_debug_attr_new(ut8 *buf, ut64 sz, ut64 buf_offset); +R_API RBinJavaAttrInfo* r_bin_java_bootstrap_methods_attr_new(ut8 *buf, ut64 sz, ut64 buf_offset); +R_API RBinJavaAttrInfo* r_bin_java_rtv_annotations_attr_new(ut8 *buf, ut64 sz, ut64 buf_offset); +R_API RBinJavaAttrInfo* r_bin_java_rti_annotations_attr_new(ut8 *buf, ut64 sz, ut64 buf_offset); +R_API RBinJavaAttrInfo* r_bin_java_rtvp_annotations_attr_new(ut8 *buf, ut64 sz, ut64 buf_offset); +R_API RBinJavaAttrInfo* r_bin_java_rtip_annotations_attr_new(ut8 *buf, ut64 sz, ut64 buf_offset); +R_API RBinJavaAttrInfo* r_bin_java_code_attr_new(ut8 *buf, ut64 sz, ut64 buf_offset); +R_API RBinJavaAttrInfo* r_bin_java_constant_value_attr_new(ut8 *buf, ut64 sz, ut64 buf_offset); +R_API RBinJavaAttrInfo* r_bin_java_deprecated_attr_new(ut8 *buf, ut64 sz, ut64 buf_offset); +R_API RBinJavaAttrInfo* r_bin_java_exceptions_attr_new(ut8 *buf, ut64 sz, ut64 buf_offset); +R_API RBinJavaAttrInfo* r_bin_java_inner_classes_attr_new(ut8 *buf, ut64 sz, ut64 buf_offset); +R_API RBinJavaAttrInfo* r_bin_java_line_number_table_attr_new(ut8 *buf, ut64 sz, ut64 buf_offset); +R_API RBinJavaAttrInfo* r_bin_java_local_variable_table_attr_new(ut8 *buf, ut64 sz, ut64 buf_offset); +R_API RBinJavaAttrInfo* r_bin_java_source_code_file_attr_new(ut8 *buf, ut64 sz, ut64 buf_offset); +R_API RBinJavaAttrInfo* r_bin_java_stack_map_table_attr_new(ut8 *buf, ut64 sz, ut64 buf_offset); +R_API RBinJavaAttrInfo* r_bin_java_synthetic_attr_new(ut8 *buf, ut64 sz, ut64 buf_offset); R_API ut64 r_bin_java_unknown_attr_calc_size(RBinJavaAttrInfo *attr); R_API ut64 r_bin_java_annotation_default_attr_calc_size(RBinJavaAttrInfo *attr); @@ -1147,13 +1111,13 @@ R_API ut64 r_bin_java_methodhandle_cp_calc_size(RBinJavaCPTypeObj* obj); R_API ut64 r_bin_java_methodtype_cp_calc_size(RBinJavaCPTypeObj* obj); R_API ut64 r_bin_java_invokedynamic_cp_calc_size(RBinJavaCPTypeObj* obj); -R_API RBinJavaStackMapFrame * r_bin_java_default_stack_frame(); +R_API RBinJavaStackMapFrame* r_bin_java_default_stack_frame(); -R_API RBinSymbol * r_bin_java_allocate_symbol(); -R_API RBinSymbol * r_bin_java_create_new_symbol_from_cp_idx(ut32 cp_idx); -R_API RBinSymbol * r_bin_java_create_new_symbol_from_invoke_dynamic(RBinJavaCPTypeObj *obj); -R_API RBinSymbol * r_bin_java_create_new_symbol_from_ref(RBinJavaCPTypeObj *obj); -R_API RBinSymbol * r_bin_java_create_new_symbol_from_method(RBinJavaField *fm_type); +R_API RBinSymbol* r_bin_java_allocate_symbol(); +R_API RBinSymbol* r_bin_java_create_new_symbol_from_cp_idx(ut32 cp_idx); +R_API RBinSymbol* r_bin_java_create_new_symbol_from_invoke_dynamic(RBinJavaCPTypeObj *obj); +R_API RBinSymbol* r_bin_java_create_new_symbol_from_ref(RBinJavaCPTypeObj *obj); +R_API RBinSymbol* r_bin_java_create_new_symbol_from_method(RBinJavaField *fm_type); R_API ut64 r_bin_java_get_method_code_offset(RBinJavaField *fm_type); R_API ut64 r_bin_java_get_method_code_size(RBinJavaField *fm_type); @@ -1162,10 +1126,9 @@ R_API RBinJavaCPTypeObj *r_bin_java_find_cp_ref_info(ut16 name_and_typeidx); R_API RBinJavaCPTypeObj *r_bin_java_find_cp_ref_info_from_name_and_type(ut16 name_idx, ut16 descriptor_idx); R_API RBinJavaCPTypeObj *r_bin_java_find_cp_name_and_type_info(ut16 name_idx, ut16 descriptor_idx); -R_API RList * r_bin_java_allocate_r_bin_class(); -R_API RList * r_bin_java_get_classes(RBinJavaObj *bin); -R_API RList * r_bin_java_enum_class_methods(RBinJavaObj *bin, ut16 class_idx); -R_API RList * r_bin_java_enum_class_fields(RBinJavaObj *bin, ut16 class_idx); - +R_API RBinClass* r_bin_java_allocate_r_bin_class(); +R_API RList *r_bin_java_get_classes(RBinJavaObj *bin); +R_API RList *r_bin_java_enum_class_methods(RBinJavaObj *bin, ut16 class_idx); +R_API RList *r_bin_java_enum_class_fields(RBinJavaObj *bin, ut16 class_idx); #endif diff --git a/shlr/tcc/Makefile b/shlr/tcc/Makefile index c8c7ba90a8..031fcb2e85 100644 --- a/shlr/tcc/Makefile +++ b/shlr/tcc/Makefile @@ -2,7 +2,7 @@ include ../../config-user.mk include ../../mk/${COMPILER}.mk OFILES=i386-gen.o libtcc.o tccelf.o tccgen.o tccpp.o -CFLAGS+=-fPIC +CFLAGS+=-fPIC -Wall LDFLAGS=-shared SOEXT?=dylib LIBNAME=libr_tcc.${SOEXT} diff --git a/shlr/tcc/tcc.h b/shlr/tcc/tcc.h index ab8d6d4683..2e8be663b2 100644 --- a/shlr/tcc/tcc.h +++ b/shlr/tcc/tcc.h @@ -1385,5 +1385,6 @@ ST_FUNC void tcc_set_num_callers(int n); #define ST_DATA #endif /********************************************************/ +PUB_FUNC void tcc_appendf (const char *fmt, ...); #endif /* _TCC_H */ diff --git a/shlr/tcc/tccelf.c b/shlr/tcc/tccelf.c index 9280b88659..55b9c56063 100644 --- a/shlr/tcc/tccelf.c +++ b/shlr/tcc/tccelf.c @@ -35,7 +35,7 @@ ST_FUNC int put_elf_str(Section *s, const char *sym) } /* elf symbol hashing function */ -static unsigned long elf_hash(const unsigned char *name) +static unsigned long elf_hash(const char *name) { unsigned long h = 0, g; @@ -55,7 +55,7 @@ static void rebuild_hash(Section *s, unsigned int nb_buckets) { ElfW(Sym) *sym; int *ptr, *hash, nb_syms, sym_index, h; - char *strtab; + unsigned char *strtab; strtab = s->link->data; nb_syms = s->data_offset / sizeof(ElfW(Sym)); @@ -72,7 +72,7 @@ static void rebuild_hash(Section *s, unsigned int nb_buckets) sym = (ElfW(Sym) *)s->data + 1; for(sym_index = 1; sym_index < nb_syms; sym_index++) { if (ELFW(ST_BIND)(sym->st_info) != STB_LOCAL) { - h = elf_hash(strtab + sym->st_name) % nb_buckets; + h = elf_hash((const char *)(strtab + sym->st_name)) % nb_buckets; *ptr = hash[h]; hash[h] = sym_index; } else { @@ -148,7 +148,7 @@ ST_FUNC int find_elf_sym(Section *s, const char *name) sym_index = ((int *)hs->data)[2 + h]; while (sym_index != 0) { sym = &((ElfW(Sym) *)s->data)[sym_index]; - name1 = s->link->data + sym->st_name; + name1 = (const char *)(s->link->data + sym->st_name); if (!strcmp(name, name1)) return sym_index; sym_index = ((int *)hs->data)[2 + nbuckets + sym_index]; @@ -330,70 +330,6 @@ ST_FUNC void put_stabd(int type, int other, int desc) put_stabs(NULL, type, other, desc, 0); } -/* In an ELF file symbol table, the local symbols must appear below - the global and weak ones. Since TCC cannot sort it while generating - the code, we must do it after. All the relocation tables are also - modified to take into account the symbol table sorting */ -static void sort_syms(TCCState *s1, Section *s) -{ - int *old_to_new_syms; - ElfW(Sym) *new_syms; - int nb_syms, i; - ElfW(Sym) *p, *q; - ElfW_Rel *rel, *rel_end; - Section *sr; - int type, sym_index; - - nb_syms = s->data_offset / sizeof(ElfW(Sym)); - new_syms = malloc(nb_syms * sizeof(ElfW(Sym))); - old_to_new_syms = malloc(nb_syms * sizeof(int)); - - /* first pass for local symbols */ - p = (ElfW(Sym) *)s->data; - q = new_syms; - for(i = 0; i < nb_syms; i++) { - if (ELFW(ST_BIND)(p->st_info) == STB_LOCAL) { - old_to_new_syms[i] = q - new_syms; - *q++ = *p; - } - p++; - } - /* save the number of local symbols in section header */ - s->sh_info = q - new_syms; - - /* then second pass for non local symbols */ - p = (ElfW(Sym) *)s->data; - for(i = 0; i < nb_syms; i++) { - if (ELFW(ST_BIND)(p->st_info) != STB_LOCAL) { - old_to_new_syms[i] = q - new_syms; - *q++ = *p; - } - p++; - } - - /* we copy the new symbols to the old */ - memcpy(s->data, new_syms, nb_syms * sizeof(ElfW(Sym))); - free(new_syms); - - /* now we modify all the relocations */ - for(i = 1; i < s1->nb_sections; i++) { - sr = s1->sections[i]; - if (sr->sh_type == SHT_RELX && sr->link == s) { - rel_end = (ElfW_Rel *)(sr->data + sr->data_offset); - for(rel = (ElfW_Rel *)sr->data; - rel < rel_end; - rel++) { - sym_index = ELFW(R_SYM)(rel->r_info); - type = ELFW(R_TYPE)(rel->r_info); - sym_index = old_to_new_syms[sym_index]; - rel->r_info = ELFW(R_INFO)(sym_index, type); - } - } - } - - free(old_to_new_syms); -} - /* relocate common symbols in the .bss section */ ST_FUNC void relocate_common_syms(void) { @@ -431,7 +367,7 @@ ST_FUNC void relocate_syms(TCCState *s1, int do_resolve) sym++) { sh_num = sym->st_shndx; if (sh_num == SHN_UNDEF) { - name = strtab_section->data + sym->st_name; + name = (const char *)strtab_section->data + sym->st_name; if (do_resolve) { #if defined TCC_IS_NATIVE && !defined _WIN32 void *addr; @@ -888,64 +824,6 @@ ST_FUNC void relocate_section(TCCState *s1, Section *s) sr->link = s1->dynsym; } -/* relocate relocation table in 'sr' */ -static void relocate_rel(TCCState *s1, Section *sr) -{ - Section *s; - ElfW_Rel *rel, *rel_end; - - s = s1->sections[sr->sh_info]; - rel_end = (ElfW_Rel *)(sr->data + sr->data_offset); - for(rel = (ElfW_Rel *)sr->data; - rel < rel_end; - rel++) { - rel->r_offset += s->sh_addr; - } -} - -/* count the number of dynamic relocations so that we can reserve - their space */ -static int prepare_dynamic_rel(TCCState *s1, Section *sr) -{ - ElfW_Rel *rel, *rel_end; - int sym_index, esym_index, type, count; - - count = 0; - rel_end = (ElfW_Rel *)(sr->data + sr->data_offset); - for(rel = (ElfW_Rel *)sr->data; rel < rel_end; rel++) { - sym_index = ELFW(R_SYM)(rel->r_info); - type = ELFW(R_TYPE)(rel->r_info); - switch(type) { -#if defined(TCC_TARGET_I386) - case R_386_32: -#elif defined(TCC_TARGET_X86_64) - case R_X86_64_32: - case R_X86_64_32S: - case R_X86_64_64: -#endif - count++; - break; -#if defined(TCC_TARGET_I386) - case R_386_PC32: -#elif defined(TCC_TARGET_X86_64) - case R_X86_64_PC32: -#endif - esym_index = s1->symtab_to_dynsym[sym_index]; - if (esym_index) - count++; - break; - default: - break; - } - } - if (count) { - /* allocate the section */ - sr->sh_flags |= SHF_ALLOC; - sr->sh_size = count * sizeof(ElfW_Rel); - } - return count; -} - static struct sym_attr *alloc_sym_attr(TCCState *s1, int index) { int n; @@ -974,14 +852,6 @@ static void put32(unsigned char *p, uint32_t val) p[3] = val >> 24; } -#if defined(TCC_TARGET_I386) || defined(TCC_TARGET_ARM) || \ - defined(TCC_TARGET_X86_64) -static uint32_t get32(unsigned char *p) -{ - return p[0] | (p[1] << 8) | (p[2] << 16) | (p[3] << 24); -} -#endif - static void build_got(TCCState *s1) { unsigned char *ptr; @@ -1034,7 +904,7 @@ static void put_got_entry(TCCState *s1, if (s1->dynsym) { sym = &((ElfW(Sym) *)symtab_section->data)[sym_index]; - name = symtab_section->link->data + sym->st_name; + name = (const char*)(symtab_section->link->data + sym->st_name); offset = sym->st_value; #if defined(TCC_TARGET_I386) || defined(TCC_TARGET_X86_64) if (reloc_type == @@ -1277,15 +1147,6 @@ ST_FUNC Section *new_symtab(TCCState *s1, return symtab; } -/* put dynamic tag */ -static void put_dt(Section *dynamic, int dt, addr_t val) -{ - ElfW(Dyn) *dyn; - dyn = section_ptr_add(dynamic, sizeof(ElfW(Dyn))); - dyn->d_tag = dt; - dyn->d_un.d_val = val; -} - static void add_init_array_defines(TCCState *s1, const char *section_name) { Section *s; @@ -1434,28 +1295,6 @@ ST_FUNC void tcc_add_linker_symbols(TCCState *s1) } } -static void tcc_output_binary(TCCState *s1, FILE *f, - const int *section_order) -{ - Section *s; - int i, offset, size; - - offset = 0; - for(i=1;inb_sections;i++) { - s = s1->sections[section_order[i]]; - if (s->sh_type != SHT_NOBITS && - (s->sh_flags & SHF_ALLOC)) { - while (offset < s->sh_offset) { - fputc(0, f); - offset++; - } - size = s->sh_size; - fwrite(s->data, 1, size, f); - offset += size; - } - } -} - #if defined(__FreeBSD__) || defined(__FreeBSD_kernel__) #define HAVE_PHDR 1 #define EXTRA_RELITEMS 14 @@ -2435,7 +2274,7 @@ ST_FUNC int tcc_load_object_file(TCCState *s1, if (i == ehdr.e_shstrndx) continue; sh = &shdr[i]; - sh_name = strsec + sh->sh_name; + sh_name = (char *)(strsec + sh->sh_name); /* ignore sections types we do not handle */ if (sh->sh_type != SHT_PROGBITS && sh->sh_type != SHT_RELX && @@ -2556,7 +2395,7 @@ ST_FUNC int tcc_load_object_file(TCCState *s1, already defined symbol. It is very important to get correct relocations */ if (ELFW(ST_BIND)(sym->st_info) != STB_LOCAL) { - name = strtab + sym->st_name; + name = (char*)(strtab + sym->st_name); sym_index = find_elf_sym(symtab_section, name); if (sym_index) old_to_new_syms[i] = sym_index; @@ -2572,7 +2411,7 @@ ST_FUNC int tcc_load_object_file(TCCState *s1, sym->st_value += sm->offset; } /* add symbol */ - name = strtab + sym->st_name; + name = (char *)(strtab + sym->st_name); sym_index = add_elf_sym(symtab_section, sym->st_value, sym->st_size, sym->st_info, sym->st_other, sym->st_shndx, name); @@ -2676,7 +2515,7 @@ static int tcc_load_alacarte(TCCState *s1, int fd, int size) goto fail; nsyms = get_be32(data); ar_index = data + 4; - ar_names = ar_index + nsyms * 4; + ar_names = (char*)ar_index + nsyms * 4; do { bound = 0; @@ -2813,7 +2652,7 @@ ST_FUNC int tcc_load_dll(TCCState *s1, int fd, const char *filename, int level) for(i = 0, dt = dynamic; i < nb_dts; i++, dt++) { if (dt->d_tag == DT_SONAME) { - soname = dynstr + dt->d_un.d_val; + soname = (char*)dynstr + dt->d_un.d_val; } } @@ -2842,7 +2681,7 @@ ST_FUNC int tcc_load_dll(TCCState *s1, int fd, const char *filename, int level) sym_bind = ELFW(ST_BIND)(sym->st_info); if (sym_bind == STB_LOCAL) continue; - name = dynstr + sym->st_name; + name = (char *)dynstr + sym->st_name; add_elf_sym(s1->dynsymtab_section, sym->st_value, sym->st_size, sym->st_info, sym->st_other, sym->st_shndx, name); } @@ -2851,7 +2690,7 @@ ST_FUNC int tcc_load_dll(TCCState *s1, int fd, const char *filename, int level) for(i = 0, dt = dynamic; i < nb_dts; i++, dt++) { switch(dt->d_tag) { case DT_NEEDED: - name = dynstr + dt->d_un.d_val; + name = (char *)dynstr + dt->d_un.d_val; for(j = 0; j < s1->nb_loaded_dlls; j++) { dllref = s1->loaded_dlls[j]; if (!strcmp(name, dllref->name)) diff --git a/shlr/tcc/tccpp.c b/shlr/tcc/tccpp.c index 9192a7d041..30a8019927 100644 --- a/shlr/tcc/tccpp.c +++ b/shlr/tcc/tccpp.c @@ -1247,7 +1247,7 @@ static inline int hash_cached_include(const char *filename) unsigned int h; h = TOK_HASH_INIT; - s = filename; + s = (const unsigned char *)filename; while (*s) { h = TOK_HASH_FUNC(h, *s); s++; @@ -2226,7 +2226,7 @@ maybe_newline: goto token_found; pts = &(ts->hash_next); } - ts = tok_alloc_new(pts, p1, len); + ts = tok_alloc_new(pts, (const char*)p1, len); token_found: ; } else { /* slower case */