Tcl commands: Fix improper return status in flash commands and load_image.
Nand write command : nand_fileio_cleanup() always returns ERROR_OK. Due to this, handle_nand_write_command() retuns ERROR_OK in the case of nand failure. ERROR_FAIL should be returned. Flash erase_sector command : handle_flash_erase_command() always returns ERROR_OK even if the erase functionality of actual driver implementation fails. retval value should be returned. Flash write_bank command : handle_flash_write_bank_command() returns ERROR_OK even if fileio_open() and fileio_read fails. ERROR_FAIL should be returned. Load_image command : handle_load_image_command() retuns ERROR_OK even if image_open() fails. ERROR_FAIL should be returned. When the buffer is null, breaking the loop without setting retval = ERROR_FAIL would cause load_image to return ERROR_OK. Change-Id: Ice32f6036971ab5e8e4dd65edf54b394b001c80c Signed-off-by: HarishKumar <harishpresent@gmail.com> Reviewed-on: http://openocd.zylin.com/2431 Reviewed-by: Andreas Fritiofson <andreas.fritiofson@gmail.com> Tested-by: jenkins
This commit is contained in:
parent
d3445cd146
commit
b10037a0b7
|
@ -254,7 +254,8 @@ COMMAND_HANDLER(handle_nand_write_command)
|
|||
int bytes_read = nand_fileio_read(nand, &s);
|
||||
if (bytes_read <= 0) {
|
||||
command_print(CMD_CTX, "error while reading file");
|
||||
return nand_fileio_cleanup(&s);
|
||||
nand_fileio_cleanup(&s);
|
||||
return ERROR_FAIL;
|
||||
}
|
||||
s.size -= bytes_read;
|
||||
|
||||
|
@ -264,7 +265,8 @@ COMMAND_HANDLER(handle_nand_write_command)
|
|||
command_print(CMD_CTX, "failed writing file %s "
|
||||
"to NAND flash %s at offset 0x%8.8" PRIx32,
|
||||
CMD_ARGV[1], CMD_ARGV[0], s.address);
|
||||
return nand_fileio_cleanup(&s);
|
||||
nand_fileio_cleanup(&s);
|
||||
return retval;
|
||||
}
|
||||
s.address += s.page_size;
|
||||
}
|
||||
|
|
|
@ -341,7 +341,7 @@ COMMAND_HANDLER(handle_flash_erase_command)
|
|||
"in %fs", first, last, p->bank_number, duration_elapsed(&bench));
|
||||
}
|
||||
|
||||
return ERROR_OK;
|
||||
return retval;
|
||||
}
|
||||
|
||||
COMMAND_HANDLER(handle_flash_protect_command)
|
||||
|
@ -600,7 +600,7 @@ COMMAND_HANDLER(handle_flash_write_bank_command)
|
|||
COMMAND_PARSE_NUMBER(u32, CMD_ARGV[2], offset);
|
||||
|
||||
if (fileio_open(&fileio, CMD_ARGV[1], FILEIO_READ, FILEIO_BINARY) != ERROR_OK)
|
||||
return ERROR_OK;
|
||||
return ERROR_FAIL;
|
||||
|
||||
size_t filesize;
|
||||
retval = fileio_size(fileio, &filesize);
|
||||
|
@ -619,7 +619,7 @@ COMMAND_HANDLER(handle_flash_write_bank_command)
|
|||
if (fileio_read(fileio, filesize, buffer, &buf_cnt) != ERROR_OK) {
|
||||
free(buffer);
|
||||
fileio_close(fileio);
|
||||
return ERROR_OK;
|
||||
return ERROR_FAIL;
|
||||
}
|
||||
|
||||
retval = flash_driver_write(p, buffer, offset, buf_cnt);
|
||||
|
|
|
@ -3166,7 +3166,7 @@ COMMAND_HANDLER(handle_load_image_command)
|
|||
duration_start(&bench);
|
||||
|
||||
if (image_open(&image, CMD_ARGV[0], (CMD_ARGC >= 3) ? CMD_ARGV[2] : NULL) != ERROR_OK)
|
||||
return ERROR_OK;
|
||||
return ERROR_FAIL;
|
||||
|
||||
image_size = 0x0;
|
||||
retval = ERROR_OK;
|
||||
|
@ -3176,6 +3176,7 @@ COMMAND_HANDLER(handle_load_image_command)
|
|||
command_print(CMD_CTX,
|
||||
"error allocating buffer for section (%d bytes)",
|
||||
(int)(image.sections[i].size));
|
||||
retval = ERROR_FAIL;
|
||||
break;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue