diff --git a/libr/core/io.c b/libr/core/io.c index 4b980f9f45..a90476cf93 100644 --- a/libr/core/io.c +++ b/libr/core/io.c @@ -75,12 +75,12 @@ R_API int r_core_seek(RCore *core, ut64 addr, int rb) { core->offset = old; eprintf ("Cannot read block at 0x%08"PFMT64x"\n", addr); } else - if (ret != core->blocksize) { + if (ret <= core->blocksize) { if (core->ffio) { memset (core->block, 0xff, core->blocksize); core->offset = addr; } else memset (core->block+ret, 0xff, core->blocksize-ret); - } + } else eprintf ("Error: IO backend error\n"); } return (ret==-1)?R_FALSE:R_TRUE; } diff --git a/libr/io/p/io_malloc.c b/libr/io/p/io_malloc.c index cf123b74a1..81761fc135 100644 --- a/libr/io/p/io_malloc.c +++ b/libr/io/p/io_malloc.c @@ -13,18 +13,16 @@ static unsigned int malloc_bufsz = 0; // XXX shitty vars -- should be state static ut64 malloc_seek = 0; -static int __write(struct r_io_t *io, int fd, const ut8 *buf, int count) -{ +static int __write(struct r_io_t *io, int fd, const ut8 *buf, int count) { if (malloc_buf == NULL) return 0; - return (ssize_t)memcpy(malloc_buf+io->off, buf, count); + memcpy (malloc_buf+io->off, buf, count); + return count; } -static int __read(struct r_io_t *io, int fd, ut8 *buf, int count) -{ +static int __read(struct r_io_t *io, int fd, ut8 *buf, int count) { if (malloc_buf == NULL) return 0; - if (malloc_seek + count > malloc_bufsz) { //config.seek = 0; // ugly hack //count = config.seek+count-config.size; @@ -32,12 +30,11 @@ static int __read(struct r_io_t *io, int fd, ut8 *buf, int count) } if (malloc_seek + count > malloc_bufsz) malloc_seek = malloc_bufsz; - - return (ssize_t)memcpy(buf, malloc_buf+malloc_seek, count); + memcpy (buf, malloc_buf+malloc_seek, count); + return count; } -static int __close(struct r_io_t *io, int fd) -{ +static int __close(struct r_io_t *io, int fd) { if (malloc_buf == NULL) return -1; free(malloc_buf); @@ -46,9 +43,8 @@ static int __close(struct r_io_t *io, int fd) } extern ut64 posix_lseek(int fildes, ut64 offset, int whence); -static ut64 __lseek(struct r_io_t *io, int fildes, ut64 offset, int whence) -{ - switch(whence) { +static ut64 __lseek(struct r_io_t *io, int fildes, ut64 offset, int whence) { + switch (whence) { case SEEK_SET: malloc_seek = offset; break; @@ -62,13 +58,11 @@ static ut64 __lseek(struct r_io_t *io, int fildes, ut64 offset, int whence) return malloc_seek; } -static int __plugin_open(struct r_io_t *io, const char *pathname) -{ +static int __plugin_open(struct r_io_t *io, const char *pathname) { return (!memcmp(pathname, "malloc://", 9)); } -static int __open(struct r_io_t *io, const char *pathname, int flags, int mode) -{ +static int __open(struct r_io_t *io, const char *pathname, int flags, int mode) { char buf[1024]; char *ptr = buf; @@ -91,13 +85,11 @@ static int __open(struct r_io_t *io, const char *pathname, int flags, int mode) return malloc_fd; } -static int __init(struct r_io_t *io) -{ +static int __init(struct r_io_t *io) { return R_TRUE; } -static int __system(struct r_io_t *io, int fd, const char *cmd) -{ +static int __system(struct r_io_t *io, int fd, const char *cmd) { /* */ return 0; }