return dc_job;
fail:
- free(dc_job->cache_item_metadata.keys);
free(dc_job);
return NULL;
*/
if (fd != -1)
close(fd);
- if (filename_tmp)
- free(filename_tmp);
- if (filename)
- free(filename);
+ free(filename_tmp);
+ free(filename);
}
void
* TODO: pass the metadata back to the caller and do some basic
* validation.
*/
- cache_item_md_size += sizeof(cache_key);
+ cache_item_md_size += num_keys * sizeof(cache_key);
ret = lseek(fd, num_keys * sizeof(cache_key), SEEK_CUR);
if (ret == -1)
goto fail;
disk_cache_put_key(struct disk_cache *cache, const cache_key key)
{
const uint32_t *key_chunk = (const uint32_t *) key;
- int i = *key_chunk & CACHE_INDEX_KEY_MASK;
+ int i = CPU_TO_LE32(*key_chunk) & CACHE_INDEX_KEY_MASK;
unsigned char *entry;
entry = &cache->stored_keys[i * CACHE_KEY_SIZE];
disk_cache_has_key(struct disk_cache *cache, const cache_key key)
{
const uint32_t *key_chunk = (const uint32_t *) key;
- int i = *key_chunk & CACHE_INDEX_KEY_MASK;
+ int i = CPU_TO_LE32(*key_chunk) & CACHE_INDEX_KEY_MASK;
unsigned char *entry;
entry = &cache->stored_keys[i * CACHE_KEY_SIZE];