vfs: fix NULL pointer dereference in esp_vfs_unregister
This commit is contained in:
parent
2ccfe3da96
commit
4f71b4574a
2 changed files with 5 additions and 2 deletions
|
@ -23,8 +23,6 @@
|
||||||
#include "unity.h"
|
#include "unity.h"
|
||||||
#include "esp_log.h"
|
#include "esp_log.h"
|
||||||
|
|
||||||
static const char* TAG = "test_vfs_paths";
|
|
||||||
|
|
||||||
/* Dummy VFS implementation to check if VFS is called or not with expected path
|
/* Dummy VFS implementation to check if VFS is called or not with expected path
|
||||||
*/
|
*/
|
||||||
typedef struct {
|
typedef struct {
|
||||||
|
@ -175,4 +173,6 @@ TEST_CASE("vfs parses paths correctly", "[vfs]")
|
||||||
test_not_called(&inst_foo1, "/foo/file1");
|
test_not_called(&inst_foo1, "/foo/file1");
|
||||||
test_opened(&inst_foo1, "/foo1/file1");
|
test_opened(&inst_foo1, "/foo1/file1");
|
||||||
test_not_opened(&inst_foo1, "/foo1/file");
|
test_not_opened(&inst_foo1, "/foo1/file");
|
||||||
|
TEST_ESP_OK( esp_vfs_unregister("/foo") );
|
||||||
|
TEST_ESP_OK( esp_vfs_unregister("/foo1") );
|
||||||
}
|
}
|
||||||
|
|
|
@ -91,6 +91,9 @@ esp_err_t esp_vfs_unregister(const char* base_path)
|
||||||
{
|
{
|
||||||
for (size_t i = 0; i < s_vfs_count; ++i) {
|
for (size_t i = 0; i < s_vfs_count; ++i) {
|
||||||
vfs_entry_t* vfs = s_vfs[i];
|
vfs_entry_t* vfs = s_vfs[i];
|
||||||
|
if (vfs == NULL) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
if (memcmp(base_path, vfs->path_prefix, vfs->path_prefix_len) == 0) {
|
if (memcmp(base_path, vfs->path_prefix, vfs->path_prefix_len) == 0) {
|
||||||
free(vfs);
|
free(vfs);
|
||||||
s_vfs[i] = NULL;
|
s_vfs[i] = NULL;
|
||||||
|
|
Loading…
Reference in a new issue