From: Patryk Kaczmarek <patryk.k@samsung.com>

Firstly, I want to say hallo to everyone, it is my first message to
that
   list.
   
   
      I had prepared several patches for eina module. One of them fix
problem with
   you are having highly discussion, checking if function arguments
are not
   NULL.
   
   
      What’s more:
      
      
         -           I  had  proposed patches for eina_tiler and
eina_rectangle
   functions,  now below zero values ( distance and coordinstes ) are
not
   acceptable.
   
      -          Documentation for eina list specified, it should be
more clear
   now and eina stringshare_strlen fixed (NULL had length 0 ).
   
      -          eina_convert_atofp wrong return value if fp is NULL
(EINA_TRUE
   instead of EINA_FALSE)
   
   
      I had also attached diff to AUTHORS, ChangeLog and NEWS.
      


SVN revision: 76498
This commit is contained in:
Patryk Kaczmarek 2012-09-12 07:33:36 +00:00 committed by Carsten Haitzler
parent faee221288
commit b487866e75
10 changed files with 37 additions and 3 deletions

View File

@ -25,3 +25,4 @@ Jonas M. Gastal <jgastal@profusion.mobi>
Raphael Kubo da Costa <rakuco@freebsd.org> Raphael Kubo da Costa <rakuco@freebsd.org>
Jérôme Pinot <ngc891@gmail.com> Jérôme Pinot <ngc891@gmail.com>
Mike Blumenkrantz <michael.blumenkrantz@gmail.com> Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Patryk Kaczmarek <patryk.k@samsung.com>

View File

@ -341,3 +341,10 @@
2012-09-11 Cedric Bail 2012-09-11 Cedric Bail
* Speedup Eina Rbtree Iterator by recycling memory instead of massively calling malloc/free. * Speedup Eina Rbtree Iterator by recycling memory instead of massively calling malloc/free.
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

View File

@ -15,6 +15,9 @@ Additions:
* Add backtrace support to Eina_Log, use EINA_LOG_BACKTRACE to enable it. * 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 an helper to iterate over line in a mapped file.
* Add EINA_SENTINEL to protect variadic functions * 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: Fixes:
* Add missing files in the tarball. * Add missing files in the tarball.
@ -27,6 +30,8 @@ Fixes:
* Implement eina_file_map_lines() on Windows. * Implement eina_file_map_lines() on Windows.
* Handle NULL in all eina_*_free function. * Handle NULL in all eina_*_free function.
* eina_log_console_color_set() * 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: Removal:
* configure options: --disable-posix-threads, --disable-win32-threads, * configure options: --disable-posix-threads, --disable-win32-threads,

View 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 * smallest one to be head of the returned list. It will continue this process
* for all entry of both list. * for all entry of both list.
* *
* Both left and right do not exist anymore after the merge. * Both left and right lists are not vailid anymore after the merge and should
* If @p func is @c NULL, it will return @c NULL. * not be used. If @p func is @c NULL, it will return @c NULL.
* *
* Example: * Example:
* @code * @code

View File

@ -311,7 +311,7 @@ EAPI void eina_stringshare_del(Eina_Stringshare *str);
* @brief Note that the given string @b must be shared. * @brief Note that the given string @b must be shared.
* *
* @param str the shared string to know the length. It is safe to * @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. * @return The length of a shared string.
* *
* This function is a cheap way to known the length of a shared * This function is a cheap way to known the length of a shared

View File

@ -1466,6 +1466,8 @@ eina_list_accessor_new(const Eina_List *list)
{ {
Eina_Accessor_List *ac; Eina_Accessor_List *ac;
EINA_SAFETY_ON_NULL_RETURN_VAL(list, NULL);
eina_error_set(0); eina_error_set(0);
ac = calloc(1, sizeof (Eina_Accessor_List)); ac = calloc(1, sizeof (Eina_Accessor_List));
if (!ac) if (!ac)

View File

@ -875,6 +875,8 @@ eina_quadtree_increase(Eina_QuadTree_Item *object)
{ {
size_t tmp; size_t tmp;
EINA_MAGIC_CHECK_QUADTREE_ITEM(object);
tmp = object->quad->index++; tmp = object->quad->index++;
if (object->index == tmp) if (object->index == tmp)
return; return;

View File

@ -361,6 +361,9 @@ eina_rectangle_pool_new(int w, int h)
{ {
Eina_Rectangle_Pool *new; Eina_Rectangle_Pool *new;
if ((w <= 0) || (h <= 0))
return NULL;
new = malloc(sizeof (Eina_Rectangle_Pool)); new = malloc(sizeof (Eina_Rectangle_Pool));
if (!new) if (!new)
return NULL; return NULL;

View File

@ -544,6 +544,9 @@ eina_str_escape(const char *str)
char *s2, *d; char *s2, *d;
const char *s; const char *s;
if (!str)
return NULL;
s2 = malloc((strlen(str) * 2) + 1); s2 = malloc((strlen(str) * 2) + 1);
if (!s2) if (!s2)
return NULL; return NULL;

View File

@ -1115,6 +1115,9 @@ EAPI Eina_Tiler *eina_tiler_new(int w, int h)
{ {
Eina_Tiler *t; Eina_Tiler *t;
if ((w <= 0) || (h <= 0))
return NULL;
t = calloc(1, sizeof(Eina_Tiler)); t = calloc(1, sizeof(Eina_Tiler));
t->area.w = w; t->area.w = w;
t->area.h = h; 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_Rectangle tmp;
EINA_MAGIC_CHECK_TILER(t, EINA_FALSE); EINA_MAGIC_CHECK_TILER(t, EINA_FALSE);
EINA_SAFETY_ON_NULL_RETURN_VAL(r, EINA_FALSE);
if ((r->w <= 0) || (r->h <= 0)) if ((r->w <= 0) || (r->h <= 0))
return EINA_FALSE; return EINA_FALSE;
@ -1169,6 +1174,8 @@ EAPI void eina_tiler_rect_del(Eina_Tiler *t, const Eina_Rectangle *r)
Eina_Rectangle tmp; Eina_Rectangle tmp;
EINA_MAGIC_CHECK_TILER(t); EINA_MAGIC_CHECK_TILER(t);
EINA_SAFETY_ON_NULL_RETURN(r);
if ((r->w <= 0) || (r->h <= 0)) if ((r->w <= 0) || (r->h <= 0))
return; return;
@ -1260,6 +1267,10 @@ eina_tile_grid_slicer_iterator_new(int x,
{ {
Eina_Tile_Grid_Slicer_Iterator *it; 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)); it = calloc(1, sizeof(*it));
if (!it) if (!it)
{ {