backport eina nullcheck things.
authorraster <raster@7cbeb6ba-43b4-40fd-8cce-4c39aea84d33>
Wed, 12 Sep 2012 07:35:18 +0000 (07:35 +0000)
committerraster <raster@7cbeb6ba-43b4-40fd-8cce-4c39aea84d33>
Wed, 12 Sep 2012 07:35:18 +0000 (07:35 +0000)
git-svn-id: svn+ssh://svn.enlightenment.org/var/svn/e/branches/eina-1.7@76499 7cbeb6ba-43b4-40fd-8cce-4c39aea84d33

AUTHORS
ChangeLog
NEWS
src/include/eina_list.h
src/include/eina_stringshare.h
src/lib/eina_list.c
src/lib/eina_quadtree.c
src/lib/eina_rectangle.c
src/lib/eina_str.c
src/lib/eina_tiler.c

diff --git a/AUTHORS b/AUTHORS
index ef0d3cc..7ee2d6c 100644 (file)
--- a/AUTHORS
+++ b/AUTHORS
@@ -25,3 +25,4 @@ Jonas M. Gastal <jgastal@profusion.mobi>
 Raphael Kubo da Costa <rakuco@freebsd.org>
 Jérôme Pinot <ngc891@gmail.com>
 Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
+Patryk Kaczmarek <patryk.k@samsung.com>
index 39662ab..fc57f4f 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
 2012-08-30  Carsten Haitzler (The Rasterman)
 
         1.7.0 release
+
+2012-09-12 Patryk Kaczmarek <patryk.k@samsung.com>
+
+        * Add EINA_SAFETY checks for proper function arguments.
+        * Add check if given arguments (distance and coordinates) in eina_tiler
+        and eina_rectangle are not below zero
+        * Documentation for eina list specified and eina stringshare fixed
diff --git a/NEWS b/NEWS
index 2c364ce..a17ec50 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -7,6 +7,9 @@ Additions:
     * Add backtrace support to Eina_Log, use EINA_LOG_BACKTRACE to enable it.
     * Add an helper to iterate over line in a mapped file.
     * Add EINA_SENTINEL to protect variadic functions
+    * Add EINA_SAFETY checks for proper function arguments.
+    * Add check if given arguments (distance and coordinates) in eina_tiler
+    and eina_rectangle are not below zero
 
 Fixes:
     * Add missing files in the tarball.
@@ -19,6 +22,8 @@ Fixes:
     * Implement eina_file_map_lines() on Windows.
     * Handle NULL in all eina_*_free function.
     * eina_log_console_color_set()
+    * Documentation for eina list specified and eina stringshare fixed.
+    * eina_convert_atofp wrong return value if fp is NULL.
 
 Removal:
     * configure options: --disable-posix-threads, --disable-win32-threads,
index b78eb64..a36bd21 100644 (file)
@@ -954,8 +954,8 @@ EAPI Eina_List            *eina_list_merge(Eina_List *left, Eina_List *right) EI
  * smallest one to be head of the returned list. It will continue this process
  * for all entry of both list.
  *
- * Both left and right do not exist anymore after the merge.
- * If @p func is @c NULL, it will return @c NULL.
+ * Both left and right lists are not vailid anymore after the merge and should
+ * not be used. If @p func is @c NULL, it will return @c NULL.
  *
  * Example:
  * @code
index 9a05bcd..21daeaf 100644 (file)
@@ -311,7 +311,7 @@ EAPI void               eina_stringshare_del(Eina_Stringshare *str);
  * @brief Note that the given string @b must be shared.
  *
  * @param str the shared string to know the length. It is safe to
- *        give @c NULL, in that case @c -1 is returned.
+ *        give @c NULL, in that case @c 0 is returned.
  * @return The length of a shared string.
  *
  * This function is a cheap way to known the length of a shared
index ea5dfb9..7ef219d 100644 (file)
@@ -1466,6 +1466,8 @@ eina_list_accessor_new(const Eina_List *list)
 {
    Eina_Accessor_List *ac;
 
+   EINA_SAFETY_ON_NULL_RETURN_VAL(list, NULL);
+
    eina_error_set(0);
    ac = calloc(1, sizeof (Eina_Accessor_List));
    if (!ac)
index f0a2dd4..e163e6f 100644 (file)
@@ -875,6 +875,8 @@ eina_quadtree_increase(Eina_QuadTree_Item *object)
 {
    size_t tmp;
 
+   EINA_MAGIC_CHECK_QUADTREE_ITEM(object);
+
    tmp = object->quad->index++;
    if (object->index == tmp)
       return;
index cfa5ac2..85cf310 100644 (file)
@@ -361,6 +361,9 @@ eina_rectangle_pool_new(int w, int h)
 {
    Eina_Rectangle_Pool *new;
 
+   if ((w <= 0) || (h <= 0))
+      return NULL;
+
    new = malloc(sizeof (Eina_Rectangle_Pool));
    if (!new)
       return NULL;
index 2a54c00..9a1a369 100644 (file)
@@ -544,6 +544,9 @@ eina_str_escape(const char *str)
    char *s2, *d;
    const char *s;
 
+   if (!str)
+      return NULL;
+
    s2 = malloc((strlen(str) * 2) + 1);
    if (!s2)
       return NULL;
index 155b0e0..b436ba6 100644 (file)
@@ -1115,6 +1115,9 @@ EAPI Eina_Tiler *eina_tiler_new(int w, int h)
 {
    Eina_Tiler *t;
 
+   if ((w <= 0) || (h <= 0))
+     return NULL;
+
    t = calloc(1, sizeof(Eina_Tiler));
    t->area.w = w;
    t->area.h = h;
@@ -1151,6 +1154,8 @@ EAPI Eina_Bool eina_tiler_rect_add(Eina_Tiler *t, const Eina_Rectangle *r)
    Eina_Rectangle tmp;
 
    EINA_MAGIC_CHECK_TILER(t, EINA_FALSE);
+   EINA_SAFETY_ON_NULL_RETURN_VAL(r, EINA_FALSE);
+
    if ((r->w <= 0) || (r->h <= 0))
       return EINA_FALSE;
 
@@ -1169,6 +1174,8 @@ EAPI void eina_tiler_rect_del(Eina_Tiler *t, const Eina_Rectangle *r)
    Eina_Rectangle tmp;
 
    EINA_MAGIC_CHECK_TILER(t);
+   EINA_SAFETY_ON_NULL_RETURN(r);
+
    if ((r->w <= 0) || (r->h <= 0))
       return;
 
@@ -1260,6 +1267,10 @@ eina_tile_grid_slicer_iterator_new(int x,
 {
    Eina_Tile_Grid_Slicer_Iterator *it;
 
+   if ((x < 0) || (y < 0) || (w <= 0) || (h <= 0) || 
+       (tile_w <= 0) || (tile_h <= 0))
+     return NULL;
+
    it = calloc(1, sizeof(*it));
    if (!it)
      {