-static int image_ihex_buffer_complete_inner(struct image *image, char *lpszLine, struct imageection *section)
+static int image_ihex_buffer_complete_inner(struct image *image, char *lpszLine, struct imagesection *section)
/* we can't determine the number of sections that we'll have to create ahead of time,
* so we locally hold them until parsing is finished */
/* we can't determine the number of sections that we'll have to create ahead of time,
* so we locally hold them until parsing is finished */
- ihex->buffer = malloc(fileio->size >> 1);
+ int filesize;
+ int retval;
+ retval = fileio_size(fileio, &filesize);
+ if (retval != ERROR_OK)
+ return retval;
+
+ ihex->buffer = malloc(filesize >> 1);
if ((field32(elf, elf->segments[i].p_type) == PT_LOAD) && (field32(elf, elf->segments[i].p_filesz) != 0))
image->num_sections++;
/* alloc and fill sections array with loadable segments */
if ((field32(elf, elf->segments[i].p_type) == PT_LOAD) && (field32(elf, elf->segments[i].p_filesz) != 0))
image->num_sections++;
/* alloc and fill sections array with loadable segments */
for (i = 0,j = 0;i < elf->segment_count;i++)
{
if ((field32(elf, elf->segments[i].p_type) == PT_LOAD) && (field32(elf, elf->segments[i].p_filesz) != 0))
for (i = 0,j = 0;i < elf->segment_count;i++)
{
if ((field32(elf, elf->segments[i].p_type) == PT_LOAD) && (field32(elf, elf->segments[i].p_filesz) != 0))
-static int image_mot_buffer_complete_inner(struct image *image, char *lpszLine, struct imageection *section)
+static int image_mot_buffer_complete_inner(struct image *image, char *lpszLine, struct imagesection *section)
/* we can't determine the number of sections that we'll have to create ahead of time,
* so we locally hold them until parsing is finished */
/* we can't determine the number of sections that we'll have to create ahead of time,
* so we locally hold them until parsing is finished */
- mot->buffer = malloc(fileio->size >> 1);
+ int retval;
+ int filesize;
+ retval = fileio_size(fileio, &filesize);
+ if (retval != ERROR_OK)
+ return retval;
+
+ mot->buffer = malloc(filesize >> 1);
image->sections[0].base_address = 0x0;
image->sections[0].size = 0xffffffff;
image->sections[0].flags = 0;
image->sections[0].base_address = 0x0;
image->sections[0].size = 0xffffffff;
image->sections[0].flags = 0;
int image_add_section(struct image *image, uint32_t base, uint32_t size, int flags, uint8_t *data)
{
int image_add_section(struct image *image, uint32_t base, uint32_t size, int flags, uint8_t *data)
{