From b5744fac2198b7f76df8784047efc81a261518ec Mon Sep 17 00:00:00 2001 From: Willy-JL <49810075+Willy-JL@users.noreply.github.com> Date: Fri, 14 Jul 2023 19:48:41 +0200 Subject: [PATCH] Storage check trailing slash on subdir check --- applications/services/storage/storage_external_api.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/applications/services/storage/storage_external_api.c b/applications/services/storage/storage_external_api.c index d2c98f290..f77fb4d03 100644 --- a/applications/services/storage/storage_external_api.c +++ b/applications/services/storage/storage_external_api.c @@ -421,9 +421,14 @@ FS_Error storage_common_remove(Storage* storage, const char* path) { } bool storage_is_subdir(const char* a, const char* b) { - char test[strlen(b) + 2]; - snprintf(test, sizeof(test), "%s/", b); - return strncmp(a, test, sizeof(test) - 1) == 0; + size_t len = strlen(b) + 2; + char test[len]; + strncpy(test, b, len); + if(test[len - 3] != '/') { + test[len - 2] = '/'; + test[len - 1] = '\0'; + } + return strncmp(a, test, len - 1) == 0; } FS_Error storage_common_rename(Storage* storage, const char* old_path, const char* new_path) {