diff options
Diffstat (limited to 'Software/Embedded_SW/Embedded/Common/SWUpdate/FileSystem.c')
| -rw-r--r-- | Software/Embedded_SW/Embedded/Common/SWUpdate/FileSystem.c | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/Software/Embedded_SW/Embedded/Common/SWUpdate/FileSystem.c b/Software/Embedded_SW/Embedded/Common/SWUpdate/FileSystem.c index 6324c904e..de4f0937a 100644 --- a/Software/Embedded_SW/Embedded/Common/SWUpdate/FileSystem.c +++ b/Software/Embedded_SW/Embedded/Common/SWUpdate/FileSystem.c @@ -386,12 +386,14 @@ uint32_t GetFilesRequestFunc(MessageContainer* requestContainer) #define MAX_NUM_OF_FILES 10 DIR dir; - FILINFO* fno[MAX_NUM_OF_FILES] = {0,0,0,0,0,0,0,0,0,0}; + FILINFO* fno[MAX_NUM_OF_FILES]; int NumOfFiles = 0; FRESULT Fresult = FR_OK; FileInfo **FilesInfo = (FileInfo**)malloc(sizeof(FileInfo *)*(MAX_NUM_OF_FILES)); FileInfo Data[MAX_NUM_OF_FILES]; + fno[0] = malloc(sizeof(FILINFO)); + memset (fno[0],0,sizeof(FILINFO)); Fresult = f_stat(request->path,fno[0]); if (Fresult == FR_OK) { @@ -404,6 +406,8 @@ uint32_t GetFilesRequestFunc(MessageContainer* requestContainer) { for (NumOfFiles = 1;NumOfFiles < MAX_NUM_OF_FILES;NumOfFiles++) { + fno[NumOfFiles] = malloc(sizeof(FILINFO)); + memset (fno[NumOfFiles],0,sizeof(FILINFO)); Fresult = f_readdir(&dir, &fno[NumOfFiles]); /* Read a directory item */ if (Fresult == FR_OK) { @@ -445,6 +449,10 @@ uint32_t GetFilesRequestFunc(MessageContainer* requestContainer) size_t container_size = message_container__pack(&responseContainer, container_buffer); free(responseContainer.data.data); SendChars(container_buffer, container_size); - + for (NumOfFiles = 0;NumOfFiles < MAX_NUM_OF_FILES;NumOfFiles++) + { + if (fno[NumOfFiles]) + free (fno[NumOfFiles]); + } return OK; } |
