From 84fc38dc3540cb6dccba3154d2b36cefc1bc87d4 Mon Sep 17 00:00:00 2001 From: Lailouezzz Date: Sun, 5 Jan 2020 17:29:53 +0100 Subject: [PATCH] More checks --- lib/link/seven_fs/open_file.c | 8 ++++++-- lib/link/usage/usage.h | 5 +++++ 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/lib/link/seven_fs/open_file.c b/lib/link/seven_fs/open_file.c index 8f0dba7..7f7288a 100644 --- a/lib/link/seven_fs/open_file.c +++ b/lib/link/seven_fs/open_file.c @@ -187,8 +187,12 @@ int CASIO_EXPORT casio_sevenfs_open(sevenfs_cookie_t *cookie, sevenfs_path_t *pa casio_off_t size, casio_openmode_t mode, casio_stream_t **stream) { casio_link_t *handle = cookie; int err; - const char *dirname = &path->sevenfs_path_data[path->sevenfs_path_dir]; - const char *filename = &path->sevenfs_path_data[path->sevenfs_path_file]; + const char *dirname = path->sevenfs_path_dir != 0xFF ? + &path->sevenfs_path_data[path->sevenfs_path_dir] : + NULL; + const char *filename = path->sevenfs_path_file != 0xFF ? + &path->sevenfs_path_data[path->sevenfs_path_file] : + NULL; const char *devname = &path->sevenfs_path_data[path->sevenfs_path_dev]; /* Make checks (not really required) */ diff --git a/lib/link/usage/usage.h b/lib/link/usage/usage.h index 72ec0a1..8522a9f 100644 --- a/lib/link/usage/usage.h +++ b/lib/link/usage/usage.h @@ -65,6 +65,11 @@ # define chk_dirname(CASIO__DN) /* TODO */ +/* Check that the directory name is there and ok. */ + +# define chk_required_dirname(CASIO__DN) \ + if (!(CASIO_DN)) return (casio_error_invalid); + /* Check that the MCS request head is ok. */ # define chk_head(CASIO__HD) \