diff --git a/client/src/fileutils.c b/client/src/fileutils.c index 3f416e9e4..71e41bc82 100644 --- a/client/src/fileutils.c +++ b/client/src/fileutils.c @@ -667,10 +667,18 @@ out: return retval; } int saveFileJSONroot(const char *preferredName, void *root, size_t flags, bool verbose) { + return saveFileJSONrootEx(preferredName, root, flags, verbose, false); +} +int saveFileJSONrootEx(const char *preferredName, void *root, size_t flags, bool verbose, bool overwrite) { if (root == NULL) return PM3_EINVARG; - char *filename = newfilenamemcopy(preferredName, ".json"); + char *filename = NULL; + if (overwrite) + filename = filenamemcopy(preferredName, ".json"); + else + filename = newfilenamemcopy(preferredName, ".json"); + if (filename == NULL) return PM3_EMALLOC; diff --git a/client/src/fileutils.h b/client/src/fileutils.h index 6bdbab8d7..74f00e243 100644 --- a/client/src/fileutils.h +++ b/client/src/fileutils.h @@ -123,6 +123,7 @@ int saveFileEML(const char *preferredName, uint8_t *data, size_t datalen, size_t int saveFileJSON(const char *preferredName, JSONFileType ftype, uint8_t *data, size_t datalen, void (*callback)(json_t *)); int saveFileJSONex(const char *preferredName, JSONFileType ftype, uint8_t *data, size_t datalen, bool verbose, void (*callback)(json_t *)); int saveFileJSONroot(const char *preferredName, void *root, size_t flags, bool verbose); +int saveFileJSONrootEx(const char *preferredName, void *root, size_t flags, bool verbose, bool overwrite); /** STUB * @brief Utility function to save WAVE data to a file. This method takes a preferred name, but if that * file already exists, it tries with another name until it finds something suitable.