mirror of
https://github.com/radareorg/radare2.git
synced 2025-03-05 21:13:27 +00:00
kill RCoreFile->size
This commit is contained in:
parent
2a37539759
commit
4f70c1bf89
@ -558,7 +558,7 @@ if (strcmp (argv[1], "--")) {
|
||||
if (seek != UT64_MAX)
|
||||
r_core_seek (&r, seek, 1);
|
||||
|
||||
if (fullfile) r_core_block_size (&r, r.file->size);
|
||||
if (fullfile) r_core_block_size (&r, r_io_desc_size (r.io, r.file->desc));
|
||||
|
||||
r_core_seek (&r, r.offset, 1); // read current block
|
||||
|
||||
|
@ -1001,9 +1001,12 @@ static int bin_sections (RCore *r, int mode, ut64 baddr, ut64 laddr, int va, ut6
|
||||
}
|
||||
// H -> Header fields
|
||||
if (0) {
|
||||
/*
|
||||
ut64 size = r_io_size (r->io);
|
||||
if (size == 0)
|
||||
size = r->file->size;
|
||||
*/
|
||||
ut64 size = r_io_desc_size (r->io, r->file->desc);
|
||||
secbase >>= 16;
|
||||
secbase <<= 16;
|
||||
secbase = baddr; // always override?
|
||||
|
@ -538,7 +538,7 @@ static int cmd_resize(void *data, const char *input) {
|
||||
st64 delta = 0;
|
||||
int grow, ret;
|
||||
|
||||
oldsize = core->file->size;
|
||||
oldsize = r_io_desc_size (core->io, core->file->desc);
|
||||
switch (*input) {
|
||||
case 'm':
|
||||
if (input[1]==' ')
|
||||
@ -579,9 +579,8 @@ static int cmd_resize(void *data, const char *input) {
|
||||
grow = (newsize > oldsize);
|
||||
if (grow) {
|
||||
ret = r_io_resize (core->io, newsize);
|
||||
if (ret<1) {
|
||||
if (ret<1)
|
||||
eprintf ("r_io_resize: cannot resize\n");
|
||||
} else core->file->size = newsize;
|
||||
}
|
||||
|
||||
if (delta && core->offset < newsize)
|
||||
@ -589,9 +588,8 @@ static int cmd_resize(void *data, const char *input) {
|
||||
|
||||
if (!grow) {
|
||||
ret = r_io_resize (core->io, newsize);
|
||||
if (ret<1) {
|
||||
if (ret<1)
|
||||
eprintf ("r_io_resize: cannot resize\n");
|
||||
} else core->file->size = newsize;
|
||||
}
|
||||
|
||||
if (newsize < core->offset+core->blocksize ||
|
||||
|
@ -46,7 +46,7 @@ static void r_core_file_info (RCore *core, int mode) {
|
||||
if (dbg) dbg = R_IO_WRITE | R_IO_EXEC;
|
||||
if (cf->desc)
|
||||
r_cons_printf (",\"fd\":%d", cf->desc->fd);
|
||||
r_cons_printf (",\"size\":%"PFMT64d, cf->size);
|
||||
r_cons_printf (",\"size\":%"PFMT64d, r_io_desc_size (core->io, cf->desc));
|
||||
r_cons_printf (",\"mode\":\"%s\"", r_str_rwx_i (
|
||||
cf->rwx | dbg));
|
||||
r_cons_printf (",\"block\":%d", core->blocksize);
|
||||
@ -65,7 +65,7 @@ static void r_core_file_info (RCore *core, int mode) {
|
||||
r_cons_printf ("file\t%s\n", fn);
|
||||
if (dbg) dbg = R_IO_WRITE | R_IO_EXEC;
|
||||
r_cons_printf ("fd\t%d\n", cf->desc->fd);
|
||||
r_cons_printf ("size\t0x%"PFMT64x"\n", cf->size);
|
||||
r_cons_printf ("size\t0x%"PFMT64x"\n", r_io_desc_size (core->io, cf->desc));
|
||||
r_cons_printf ("mode\t%s\n", r_str_rwx_i (cf->rwx | dbg));
|
||||
r_cons_printf ("block\t0x%x\n", core->blocksize);
|
||||
r_cons_printf ("uri\t%s\n", cf->desc->uri);
|
||||
|
@ -806,7 +806,7 @@ static int cmd_print(void *data, const char *input) {
|
||||
break;
|
||||
case '=': //p=
|
||||
nbsz = r_num_get (core->num, *input?input[1]?input+2:input+1:input);
|
||||
fsz = core->file? core->file->size: 0;
|
||||
fsz = (core->file && core->io)? r_io_desc_size (core->io, core->file->desc): 0;
|
||||
if (nbsz) {
|
||||
nbsz = fsz / nbsz;
|
||||
obsz = core->blocksize;
|
||||
|
@ -249,7 +249,7 @@ R_API void r_core_get_boundaries (RCore *core, const char *mode, ut64 *from, ut6
|
||||
if (core->io->va) {
|
||||
/* TODO: section size? */
|
||||
} else {
|
||||
*to = core->file->size;
|
||||
*to = r_io_desc_size (core->io, core->file->desc);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -259,7 +259,7 @@ static int cmd_seek(void *data, const char *input) {
|
||||
RIOSection *s = r_io_section_vget (core->io, core->offset);
|
||||
// XXX: this +2 is a hack. must fix gap between sections
|
||||
if (s) r_core_seek (core, s->vaddr+s->size+2, 1);
|
||||
else r_core_seek (core, core->file->size, 1);
|
||||
else r_core_seek (core, r_io_desc_size (core->io, core->file->desc), 1);
|
||||
}
|
||||
break;
|
||||
case '?': {
|
||||
|
@ -135,7 +135,7 @@ static ut64 num_callback(RNum *userptr, const char *str, int *ok) {
|
||||
case 'v': return op.val; // immediate value
|
||||
case 'l': return op.size;
|
||||
case 'b': return core->blocksize;
|
||||
case 's': return core->file->size;
|
||||
case 's': return r_io_desc_size (core->io, core->file->desc);
|
||||
case 'w': return r_config_get_i (core->config, "asm.bits") / 8;
|
||||
case 'S':
|
||||
s = r_io_section_vget (core->io, core->offset);
|
||||
@ -987,7 +987,7 @@ reaccept:
|
||||
if (file) {
|
||||
r_core_bin_load (core, NULL, baddr);
|
||||
file->map = r_io_map_add (core->io, file->desc->fd,
|
||||
R_IO_READ, 0, 0, file->size);
|
||||
R_IO_READ, 0, 0, r_io_desc_size (core->io, file->desc));
|
||||
pipefd = core->file->desc->fd;
|
||||
eprintf ("(flags: %d) len: %d filename: '%s'\n",
|
||||
flg, cmd, ptr); //config.file);
|
||||
@ -1147,7 +1147,7 @@ reaccept:
|
||||
if (buf[0]!=2) {
|
||||
r_core_seek (core, x, buf[0]);
|
||||
x = core->offset;
|
||||
} else x = core->file->size;
|
||||
} else x = r_io_desc_size (core->io, core->file->desc);
|
||||
buf[0] = RMT_SEEK | RMT_REPLY;
|
||||
r_mem_copyendian (buf+1, (ut8*)&x, 8, !LE);
|
||||
r_socket_write (c, buf, 9);
|
||||
|
@ -10,12 +10,6 @@ static int r_core_file_do_load_for_io_plugin (RCore *r, ut64 baseaddr, ut64 load
|
||||
//static int r_core_file_do_load_for_hex (RCore *r, ut64 baddr, ut64 loadaddr, const char *filenameuri);
|
||||
|
||||
|
||||
R_API ut64 r_core_file_resize(struct r_core_t *core, ut64 newsize) {
|
||||
if (newsize==0 && core->file)
|
||||
return core->file->size;
|
||||
return 0LL;
|
||||
}
|
||||
|
||||
// TODO: add support for args
|
||||
R_API int r_core_file_reopen(RCore *core, const char *args, int perm) {
|
||||
int isdebug = r_config_get_i (core->config, "cfg.debug");
|
||||
@ -183,7 +177,7 @@ R_API char *r_core_sysenv_begin(RCore *core, const char *cmd) {
|
||||
}
|
||||
if (core->file && core->file->desc && core->file->desc->name) {
|
||||
r_sys_setenv ("FILE", core->file->desc->name);
|
||||
snprintf (buf, sizeof (buf), "%"PFMT64d, core->file->size);
|
||||
snprintf (buf, sizeof (buf), "%"PFMT64d, r_io_desc_size (core->io, core->file->desc));
|
||||
r_sys_setenv ("SIZE", buf);
|
||||
if (strstr (cmd, "BLOCK")) {
|
||||
// replace BLOCK in RET string
|
||||
@ -478,11 +472,11 @@ R_API RIOMap *r_core_file_get_next_map (RCore *core, RCoreFile * fh, int mode, u
|
||||
ut64 load_align = r_config_get_i (core->config, "file.loadalign");
|
||||
RIOMap *map = NULL;
|
||||
if (!strcmp (loadmethod, "overwrite"))
|
||||
map = r_io_map_new (core->io, fh->desc->fd, mode, 0, loadaddr, fh->size);
|
||||
map = r_io_map_new (core->io, fh->desc->fd, mode, 0, loadaddr, r_io_desc_size (core->io, fh->desc));
|
||||
if (!strcmp (loadmethod, "fail"))
|
||||
map = r_io_map_add (core->io, fh->desc->fd, mode, 0, loadaddr, fh->size);
|
||||
map = r_io_map_add (core->io, fh->desc->fd, mode, 0, loadaddr, r_io_desc_size (core->io, fh->desc));
|
||||
if (!strcmp (loadmethod, "append") && load_align)
|
||||
map = r_io_map_add_next_available (core->io, fh->desc->fd, mode, 0, loadaddr, fh->size, load_align);
|
||||
map = r_io_map_add_next_available (core->io, fh->desc->fd, mode, 0, loadaddr, r_io_desc_size (core->io, fh->desc), load_align);
|
||||
if (!strcmp (suppress_warning, "false")) {
|
||||
if (!map)
|
||||
eprintf ("r_core_file_get_next_map: Unable to load specified file to 0x%08"PFMT64x"\n", loadaddr);
|
||||
@ -539,11 +533,9 @@ R_API RCoreFile *r_core_file_open_many(RCore *r, const char *file, int mode, ut6
|
||||
fh->alive = 1;
|
||||
fh->core = r;
|
||||
fh->desc = fd;
|
||||
fh->size = r_io_desc_size (r->io, fd);
|
||||
fh->rwx = mode;
|
||||
r->file = fh;
|
||||
r->io->plugin = fd->plugin;
|
||||
fh->size = r_io_size (r->io);
|
||||
// XXX - load addr should be at a set offset
|
||||
fh->map = r_core_file_get_next_map (r, fh, mode, current_loadaddr);
|
||||
|
||||
@ -572,7 +564,7 @@ R_API RCoreFile *r_core_file_open_many(RCore *r, const char *file, int mode, ut6
|
||||
if (cp && *cp) r_core_cmd (r, cp, 0);
|
||||
|
||||
r_config_set (r->config, "file.path", top_file->desc->name);
|
||||
r_config_set_i (r->config, "zoom.to", top_file->map->from+top_file->size);
|
||||
r_config_set_i (r->config, "zoom.to", top_file->map->from + r_io_desc_size (r->io, top_file->desc));
|
||||
if (loadmethod) r_config_set (r->config, "file.loadmethod", loadmethod);
|
||||
free (loadmethod);
|
||||
|
||||
@ -621,9 +613,7 @@ R_API RCoreFile *r_core_file_open(RCore *r, const char *file, int mode, ut64 loa
|
||||
fh->alive = 1;
|
||||
fh->core = r;
|
||||
fh->desc = fd;
|
||||
fh->size = r_io_desc_size (r->io, fd);
|
||||
fh->rwx = mode;
|
||||
fh->size = r_io_size (r->io);
|
||||
|
||||
cp = r_config_get (r->config, "cmd.open");
|
||||
if (cp && *cp)
|
||||
@ -641,7 +631,7 @@ R_API RCoreFile *r_core_file_open(RCore *r, const char *file, int mode, ut64 loa
|
||||
r_bin_bind (r->bin, &(fh->binb));
|
||||
r_list_append (r->files, fh);
|
||||
r_core_file_set_by_file (r, fh);
|
||||
r_config_set_i (r->config, "zoom.to", fh->map->from+fh->size);
|
||||
r_config_set_i (r->config, "zoom.to", fh->map->from + r_io_desc_size (r->io, fh->desc));
|
||||
return fh;
|
||||
}
|
||||
|
||||
@ -801,7 +791,7 @@ R_API int r_core_hash_load(RCore *r, const char *file) {
|
||||
RCoreFile *cf = r_core_file_cur (r);
|
||||
|
||||
limit = r_config_get_i (r->config, "cfg.hashlimit");
|
||||
if (cf->size > limit)
|
||||
if (r_io_desc_size (r->io, cf->desc) > limit)
|
||||
return R_FALSE;
|
||||
buf = (ut8*)r_file_slurp (file, &buf_len);
|
||||
if (buf==NULL)
|
||||
|
@ -283,7 +283,6 @@ R_API int r_core_write_at(RCore *core, ut64 addr, const ut8 *buf, int size) {
|
||||
if (addr >= core->offset && addr <= core->offset+core->blocksize)
|
||||
r_core_block_read (core, 0);
|
||||
}
|
||||
core->file->size = r_io_size (core->io);
|
||||
return (ret==-1)? R_FALSE: R_TRUE;
|
||||
}
|
||||
|
||||
@ -298,7 +297,6 @@ R_API int r_core_extend_at(RCore *core, ut64 addr, int size) {
|
||||
if (addr >= core->offset && addr <= core->offset+core->blocksize)
|
||||
r_core_block_read (core, 0);
|
||||
}
|
||||
core->file->size = r_io_size (core->io);
|
||||
return (ret==-1)? R_FALSE: R_TRUE;
|
||||
}
|
||||
|
||||
|
@ -1014,7 +1014,7 @@ static int r_cmd_java_handle_calc_class_sz (RCore *core, const char *cmd) {
|
||||
ut64 sz = UT64_MAX;
|
||||
ut64 addr = UT64_MAX;
|
||||
ut64 res_size = UT64_MAX,
|
||||
cur_fsz = r_core_file_cur (core)->size;
|
||||
cur_fsz = r_io_desc_size (core->io, r_core_file_cur (core)->desc);
|
||||
ut8 *buf = NULL;
|
||||
ut32 max_size = (8096 << 16);
|
||||
ut32 init_size = (1 << 16);
|
||||
@ -1061,7 +1061,7 @@ static int r_cmd_java_handle_isvalid (RCore *core, const char *cmd) {
|
||||
int res = R_FALSE;
|
||||
ut64 res_size = UT64_MAX;
|
||||
ut8 *buf = NULL;
|
||||
ut32 cur_fsz = r_core_file_cur (core)->size;
|
||||
ut32 cur_fsz = r_io_desc_size (core->io, r_core_file_cur (core)->desc);
|
||||
ut32 max_size = (8096 << 16);
|
||||
ut64 sz = UT64_MAX;
|
||||
const char *p = cmd ? r_cmd_java_consumetok (cmd, ' ', -1): NULL;
|
||||
|
@ -827,15 +827,15 @@ R_API int r_core_visual_cmd(RCore *core, int ch) {
|
||||
if (core->io->va) {
|
||||
ut64 offset = r_io_section_get_vaddr (core->io, 0);
|
||||
if (offset == UT64_MAX) {
|
||||
offset = core->file->size - core->blocksize;
|
||||
offset = r_io_desc_size (core->io, core->file->desc) - core->blocksize;
|
||||
ret = r_core_seek (core, offset, 1);
|
||||
} else {
|
||||
offset += core->file->size - core->blocksize;
|
||||
offset += r_io_desc_size (core->io, core->file->desc) - core->blocksize;
|
||||
ret = r_core_seek (core, offset, 1);
|
||||
}
|
||||
} else {
|
||||
ret = r_core_seek (core,
|
||||
core->file->size-core->blocksize, 1);
|
||||
r_io_desc_size (core->io, core->file->desc) - core->blocksize, 1);
|
||||
}
|
||||
if (ret != -1)
|
||||
r_io_sundo_push (core->io, core->offset);
|
||||
|
@ -74,7 +74,6 @@ typedef struct r_core_log_t {
|
||||
|
||||
typedef struct r_core_file_t {
|
||||
ut64 seek;
|
||||
ut64 size;
|
||||
RIOMap *map;
|
||||
int rwx;
|
||||
int dbg;
|
||||
|
Loading…
x
Reference in New Issue
Block a user