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:
Daniel Anselmi 2022-12-14 09:27:38 +01:00 committed by Antonio Borneo
parent 95c27731d4
commit 91bd431344
2 changed files with 17 additions and 17 deletions

View File

@ -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",

View File

@ -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));