pld: move file sanity checks to pld.c
Change-Id: Id64b1165b25a03634949ac22b8af16eb0e24c1fa Signed-off-by: Daniel Anselmi <danselmi@gmx.ch> Reviewed-on: https://review.openocd.org/c/openocd/+/7388 Tested-by: jenkins Reviewed-by: Antonio Borneo <borneo.antonio@gmail.com>
This commit is contained in:
parent
95c27731d4
commit
91bd431344
|
@ -10,6 +10,7 @@
|
|||
#endif
|
||||
|
||||
#include "pld.h"
|
||||
#include <sys/stat.h>
|
||||
#include <helper/log.h>
|
||||
#include <helper/replacements.h>
|
||||
#include <helper/time_support.h>
|
||||
|
@ -134,6 +135,22 @@ COMMAND_HANDLER(handle_pld_load_command)
|
|||
return ERROR_OK;
|
||||
}
|
||||
|
||||
struct stat input_stat;
|
||||
if (stat(CMD_ARGV[1], &input_stat) == -1) {
|
||||
LOG_ERROR("couldn't stat() %s: %s", CMD_ARGV[1], strerror(errno));
|
||||
return ERROR_PLD_FILE_LOAD_FAILED;
|
||||
}
|
||||
|
||||
if (S_ISDIR(input_stat.st_mode)) {
|
||||
LOG_ERROR("%s is a directory", CMD_ARGV[1]);
|
||||
return ERROR_PLD_FILE_LOAD_FAILED;
|
||||
}
|
||||
|
||||
if (input_stat.st_size == 0) {
|
||||
LOG_ERROR("Empty file %s", CMD_ARGV[1]);
|
||||
return ERROR_PLD_FILE_LOAD_FAILED;
|
||||
}
|
||||
|
||||
retval = p->driver->load(p, CMD_ARGV[1]);
|
||||
if (retval != ERROR_OK) {
|
||||
command_print(CMD, "failed loading file %s to pld device %u",
|
||||
|
|
|
@ -13,7 +13,6 @@
|
|||
#include "pld.h"
|
||||
#include <helper/log.h>
|
||||
|
||||
#include <sys/stat.h>
|
||||
#include <helper/system.h>
|
||||
|
||||
static int read_section(FILE *input_file, int length_size, char section,
|
||||
|
@ -60,27 +59,11 @@ static int read_section(FILE *input_file, int length_size, char section,
|
|||
int xilinx_read_bit_file(struct xilinx_bit_file *bit_file, const char *filename)
|
||||
{
|
||||
FILE *input_file;
|
||||
struct stat input_stat;
|
||||
int read_count;
|
||||
|
||||
if (!filename || !bit_file)
|
||||
return ERROR_COMMAND_SYNTAX_ERROR;
|
||||
|
||||
if (stat(filename, &input_stat) == -1) {
|
||||
LOG_ERROR("couldn't stat() %s: %s", filename, strerror(errno));
|
||||
return ERROR_PLD_FILE_LOAD_FAILED;
|
||||
}
|
||||
|
||||
if (S_ISDIR(input_stat.st_mode)) {
|
||||
LOG_ERROR("%s is a directory", filename);
|
||||
return ERROR_PLD_FILE_LOAD_FAILED;
|
||||
}
|
||||
|
||||
if (input_stat.st_size == 0) {
|
||||
LOG_ERROR("Empty file %s", filename);
|
||||
return ERROR_PLD_FILE_LOAD_FAILED;
|
||||
}
|
||||
|
||||
input_file = fopen(filename, "rb");
|
||||
if (!input_file) {
|
||||
LOG_ERROR("couldn't open %s: %s", filename, strerror(errno));
|
||||
|
|
Loading…
Reference in New Issue