if an EET is opened for EET_FILE_MODE_WRITE, don't permit eet_read() calls. and don't die if the header isn't set up correctly yet

SVN revision: 13187
This commit is contained in:
tsauerbeck 2005-02-03 17:20:29 +00:00 committed by tsauerbeck
parent 10707730c1
commit 3a5190d3bd
1 changed files with 5 additions and 3 deletions

View File

@ -715,17 +715,19 @@ eet_read(Eet_File *ef, char *name, int *size_ret)
int hash, i, num;
/* check to see its' an eet file pointer */
if ((!ef) || (ef->magic != EET_MAGIC_FILE) || (!name))
if ((!ef) || (ef->magic != EET_MAGIC_FILE) || (!name) ||
((ef->mode != EET_FILE_MODE_READ) &&
(ef->mode != EET_FILE_MODE_RW)))
{
if (size_ret) *size_ret = 0;
return NULL;
}
/* get hash bucket this should be in */
hash = eet_hash_gen(name, ef->header->directory->size);
/* no header, return NULL */
if (!ef->header) return NULL;
/* no directory, return NULL */
if (!ef->header->directory) return NULL;
/* get hash bucket this should be in */
hash = eet_hash_gen(name, ef->header->directory->size);
/* hunt hash bucket */
num = ef->header->directory->hash[hash].size;
for (i = 0; i < num; i++)