if an EET is opened for EET_FILE_MODE_WRITE, don't permit eet_read() calls. and don...
authortsauerbeck <tsauerbeck>
Thu, 3 Feb 2005 17:20:29 +0000 (17:20 +0000)
committertsauerbeck <tsauerbeck@7cbeb6ba-43b4-40fd-8cce-4c39aea84d33>
Thu, 3 Feb 2005 17:20:29 +0000 (17:20 +0000)
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/e17/libs/eet@13187 7cbeb6ba-43b4-40fd-8cce-4c39aea84d33

src/lib/eet_lib.c

index 5c0a111..230de1e 100644 (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++)