- if(firstFree == -1) {
- // Use `i` for temp length
- i = sizeof(tFAT_LFNCache) + (cache->NumEntries+1)*sizeof(tFAT_LFNCacheEnt);
- Node->Data = realloc( Node->Data, i );
- if( !Node->Data ) {
- Log_Error("FAT", "realloc() fail, unable to allocate %i for LFN cache", i);
+ int cache_entry = firstFree;
+
+ if(firstFree == -1)
+ {
+ size_t newsize = offsetof(tFAT_LFNCache, Entries[cache->NumEntries+1]);
+ tFAT_LFNCache *new_alloc = realloc( Node->Data, newsize );
+ if( !new_alloc ) {
+ Log_Error("FAT", "realloc() fail, unable to allocate %zi for LFN cache", newsize);