From 93915858eacf3bd8b31f87bab9180752d6751f5c Mon Sep 17 00:00:00 2001 From: iceman1001 Date: Sat, 21 Sep 2019 08:47:12 +0200 Subject: [PATCH] fix `data load` now not crashing client when entering a folder path without filename --- client/cmddata.c | 2 ++ client/fileutils.c | 8 +++++++- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/client/cmddata.c b/client/cmddata.c index 792cf6a96..d1df2be65 100644 --- a/client/cmddata.c +++ b/client/cmddata.c @@ -1676,6 +1676,8 @@ static int CmdLoad(const char *Cmd) { int len = 0; len = strlen(Cmd); + if (len == 0) return PM3_EFILE; + if (len > FILE_PATH_SIZE) len = FILE_PATH_SIZE; memcpy(filename, Cmd, len); diff --git a/client/fileutils.c b/client/fileutils.c index 23553d15c..717787293 100644 --- a/client/fileutils.c +++ b/client/fileutils.c @@ -1014,8 +1014,14 @@ out: int searchFile(char **foundpath, const char *pm3dir, const char *searchname, const char *suffix, bool silent) { if (foundpath == NULL) return PM3_EINVARG; + if (searchname == NULL || strlen(searchname) == 0) + return PM3_EINVARG; + if (searchname[ strlen(searchname)-1] == '/') + return PM3_EINVARG; + char *filename = filenamemcopy(searchname, suffix); - if (filename == NULL) return PM3_EMALLOC; + if (filename == NULL || strlen(filename) == 0) + return PM3_EMALLOC; int res = searchFinalFile(foundpath, pm3dir, filename, silent); if (res != PM3_SUCCESS) { if ((res == PM3_EFILE) && (!silent))