Commit Graph

1201 Commits

Author SHA1 Message Date
Gustavo Sverzut Barbieri ef5c356153 Use EINA_PATH_MAX where it makes sense.
All the access to Eina_File_Direct_Info::path should be using the
actual size (EINA_PATH_MAX) and not another constant (PATH_MAX).



SVN revision: 55403
2010-12-09 10:14:11 +00:00
Carsten Haitzler 9317a439fb and if i'm breaking shit... i may as well put it at the end, so if
size changes later to be bigger, existing code doesnt break (due to
the way this is meant to be accessed).



SVN revision: 55388
2010-12-09 02:55:08 +00:00
Carsten Haitzler 2382fe75ce ok - make it 8192.
SVN revision: 55387
2010-12-09 02:46:11 +00:00
Carsten Haitzler 8ed17348e9 spottied a stabilty/portability bug with PATH_MAx inside a public
header. fix. see comments.



SVN revision: 55386
2010-12-09 01:29:52 +00:00
Cedric BAIL 3e5887714b * eina: forgotten link.
SVN revision: 55380
2010-12-08 19:32:23 +00:00
Marco Trevisan (Treviño) bbc439bdb7 SVN revision: 3
Subject: [E-devel] [PATCH] eina share common check for node type

Hello, recentely I've been experiencing a lot of segfaults when running
an Elementary application which uses a genlist with some swallowed parts
in which I put some elm icons (png files).
When running it I often get crashes... Debugging it I found this:

=========
CRI<14207>: eina_share_common.c:561 _eina_share_common_node_from_str()
*** Eina Magic Check Failed !!!
    Input handle is wrong type
        Expected: 98761254 - Eina Stringshare Node
            Supplied: 6e657070 - (unknown)
            *** NAUGHTY PROGRAMMER!!!
            *** SPANK SPANK SPANK!!!
            *** Now go fix your code. Tut tut tut!
            
            
            //DEBUG: Node referencies 622869060 (slen: 1145307236)
            
            
            Program received signal SIGSEGV, Segmentation fault.
            eina_share_common_del (share=0x65c810, str=0x7ffff1219150
"5hhu %5hu '%
s'\n")
    at eina_share_common.c:858
    858        node->references--;
    =========
    
    So it seems that edje tries to delete an invalid eina_share_common
    string (is this a bug that should be fixed or is it
theme-dependent?),
and so the "node" pointer in eina share is not valid...

However eina never checks for its validity, so it seg-faults...
The attached patch fix this issue, setting the node to null when its
magic is not valid, and then always checking for its validity.

Is this fine?


Full stack trace:

#0  eina_share_common_del (share=0x65c810, str=0x7ffff1219150 "5hhu %5hu
'%s'\n")
    at eina_share_common.c:858
    #1  0x00007ffff120e047 in eina_stringshare_del (str=0x7ffff1219150
"5hhu
%5hu '%s'\n")
    at eina_stringshare.c:632
    #2  0x00007ffff1e1f7bc in _edje_text_recalc_apply (ed=0x95b900,
    ep=0x70c3a0, 
        params=0x70c500, chosen_desc=<value optimized out>) at
        edje_text.c:556
        #3  0x00007ffff1de402d in _edje_part_recalc (ed=0x95b900,
ep=0x70c3a0,
flags=3)
    at edje_calc.c:2007
    #4  0x00007ffff1de4d86 in _edje_recalc_do (ed=0x95b900) at
    edje_calc.c:268
    #5  0x00007ffff1e25c7d in edje_object_part_swallow (obj=<value
optimized
out>, 
    part=0x7fffe001484c "elm.swallow.icon", obj_swallow=0x7fffe0017860)
        at edje_util.c:2300
        #6  0x00007ffff1b5d5fc in _item_realize (it=0x7fffe0016ed0,
in=10,
calc=1)
    at elm_genlist.c:1489
    #7  0x00007ffff1b5db89 in _item_block_recalc (itb=0x95b6a0,
in=<value
optimized out>, 
    qadd=<value optimized out>, norender=<value optimized out>) at
    elm_genlist.c:1609
    #8  0x00007ffff1b5e329 in _queue_proecess (wd=0x721b70,
norender=<value
optimized out>)
    at elm_genlist.c:2425
    #9  0x00007ffff1b5e567 in _item_queue (wd=0x721b70, it=<value
optimized
out>)
    at elm_genlist.c:2476
    #10 0x00007ffff1b5ead9 in elm_genlist_item_append (obj=<value
optimized
out>, 
    itc=0x7ffff2977040, data=0x8fed90, parent=0x0,
    flags=ELM_GENLIST_ITEM_NONE, 
        func=<value optimized out>, func_data=0x0) at elm_genlist.c:2528
        
        [eina-share-common-del-check-for-node.patch  text/x-patch
(1.2KB)]
Index: src/lib/eina_share_common.c
===================================================================
--- src/lib/eina_share_common.c(revisione 55018)
+++ src/lib/eina_share_common.c(copia locale)
@@ -558,7 +558,7 @@
    const size_t offset = offsetof(Eina_Share_Common_Node, str);
     
         node = (Eina_Share_Common_Node *)(str - offset);
         -   EINA_MAGIC_CHECK_SHARE_COMMON_NODE(node, node_magic, );
         +   EINA_MAGIC_CHECK_SHARE_COMMON_NODE(node, node_magic, node
= NULL);
    return node;
     
         (void) node_magic; /* When magic are disable, node_magic is
unused, this remove a warning. */
@@ -821,6 +821,7 @@
 
     SHARE_COMMON_LOCK_BIG();
         node = _eina_share_common_node_from_str(str,
share->node_magic);
+   if (!node) return str;
    node->references++;
        DBG("str=%p refs=%u", str, node->references);
         
         @@ -847,6 +848,9 @@
             SHARE_COMMON_LOCK_BIG();
              
                  node = _eina_share_common_node_from_str(str,
share->node_magic);
+   if (!node)
+      return;
+
    slen = node->length;
        eina_share_common_population_del(share, slen);
            if (node->references > 1)
            @@ -901,6 +905,7 @@
                   return -1;
                    
                        node = _eina_share_common_node_from_str(str,
share->node_magic);
+   if (!node) return 0;
    return node->length;
     }
      


SVN revision: 55265
2010-12-05 03:14:03 +00:00
Cedric BAIL 602241b004 * eina,eet,embryo,evas,ecore,edje,efreet,e_dbus,eeze: beta3 !
SVN revision: 55238
2010-12-04 00:50:58 +00:00
Cedric BAIL 6f973acf31 * eina: forgotten file.
SVN revision: 55237
2010-12-04 00:46:01 +00:00
Cedric BAIL c7f47e4660 * eina: define PATH_MAX when needed.
SVN revision: 55232
2010-12-03 23:04:26 +00:00
Cedric BAIL e031740d22 * eina: don't fail if we didn't enable thread support completly.
SVN revision: 55226
2010-12-03 21:50:50 +00:00
Cedric BAIL bf3d026f41 * eina: fix typos.
SVN revision: 55223
2010-12-03 18:46:49 +00:00
Cedric BAIL bf066c2390 * eina: fix typo.
SVN revision: 55212
2010-12-03 18:12:19 +00:00
Cedric BAIL 7ad0ae92b5 * eina: add forgotten header.
SVN revision: 55211
2010-12-03 18:02:51 +00:00
Cedric BAIL fb1c587dde * eina: fix gettimeofday usage.
SVN revision: 55197
2010-12-03 16:30:26 +00:00
Cedric BAIL cb402e2a5a * eina: we don't plan to provide ABI compatibility until 1.0.
This kind of trick are for after 1.0, if you really need you can
	just pick that patch.


SVN revision: 55075
2010-11-29 23:16:19 +00:00
Mike Blumenkrantz 269a6ab702 closes ticket 634
SVN revision: 55074
2010-11-29 23:14:35 +00:00
Cedric BAIL 5d663ce49b * eina, eet: fix coverage generation with newer lcov.
SVN revision: 55070
2010-11-29 18:40:26 +00:00
Cedric BAIL aaae4e223a * eina: eina_array_clean should be inlined from the beginning.
NOTE: to prevent ABI break, I added the old symbol in eina_abi.c.
	So binary/library using eina_array_clean should continue to work
	without any problem.


SVN revision: 55068
2010-11-29 18:32:30 +00:00
helen c508b793d5 eina_array_data_set can receives null to unset
Passing null to the second parameter is the only way to unset the data,
so it should not have EINA_ARG_NONNULL to the data parameter

SVN revision: 54997
2010-11-25 19:38:45 +00:00
helen be33a14270 Missing include in eina_inlist.c
Including eina_log.h in eina_inlist.c
Removing warning:
        warning: implicit declaration of function ‘EINA_LOG_ERR’
If you do not include it, and compile eina with safety checks disabled,
Evas and Elementary will not find the EINA_LOG_ERR symbol when
compiling

SVN revision: 54995
2010-11-25 19:00:59 +00:00
Vincent Torri 73aad0242d whitespace --
SVN revision: 54856
2010-11-23 07:38:46 +00:00
P Purkayastha fad048f1d2 From: P Purkayastha <ppurka@gmail.com>
Subject: Re: [e-users] eina: sandbox violation on emerge

On 11/21/2010 12:14 AM, P Purkayastha wrote:
> Hi,
> it seems eina is triggering a sandbox violation on emerge. Essentially
> it tries to remove a file present in / while installing. Seems to be
> something new added in revision r54731:
>
http://trac.enlightenment.org/e/changeset/54731/trunk/eina/src/modules/mp
> The build log is attached.

Replacing the $(controllerdir) with $(DESTDIR)$(controllerdir) makes 
portage happy, and the installation succeeds:

cd "$S/src/modules/mp"
find . -name Makefile.am -exec sed -i -e '/rm -f 
\$(controllerdir)/s/\$/\$(DESTDIR)\$/' {} \;



SVN revision: 54853
2010-11-23 07:05:43 +00:00
Cedric BAIL 5812f44f08 * eina: make -C doesn't exist on OpenBSD.
Patch from the OpenBSD team :
              Fabien Romano <fabien@openbsd.org>
              Jonathan Armani <armani@opensbd.org>



SVN revision: 54761
2010-11-21 11:03:53 +00:00
Cedric BAIL 8d85e48480 * eina: forgotten benchmark file.
Thanks to the OpenBSD team :
              Fabien Romano <fabien@openbsd.org>
              Jonathan Armani <armani@opensbd.org>


SVN revision: 54760
2010-11-21 10:58:57 +00:00
Cedric BAIL 0d5e9175bf * eina: use available mempool.
Patch from the OpenBSD team :
	      Fabien Romano <fabien@openbsd.org>
	      Jonathan Armani <armani@opensbd.org>	      


SVN revision: 54759
2010-11-21 10:54:26 +00:00
Cedric BAIL 9fa5bbcc82 * eina: fix pthread library and flags typos.
Patch by Fabien Romano <fabien@openbsd.org>.


SVN revision: 54753
2010-11-20 22:14:57 +00:00
Vincent Torri 4f358c2c58 remove useless .la file
SVN revision: 54731
2010-11-20 00:03:55 +00:00
Mike Blumenkrantz 249a42185d more descriptive error message for inlist_remove when item is not an inlist
SVN revision: 54711
2010-11-19 05:43:28 +00:00
Mike Blumenkrantz 28a0b763d2 fix compile warnings without using private functions
SVN revision: 54577
2010-11-16 03:04:55 +00:00
Mike Blumenkrantz 5c4f02671a fix some compile warnings
SVN revision: 54570
2010-11-15 19:42:00 +00:00
Cedric BAIL 70e488feff * efl: beta2 !
SVN revision: 54507
2010-11-12 16:01:55 +00:00
Cedric BAIL 759d4efaec * eina: little doxy fix.
Thanks to kuri <kuri@paranoia.abuser.eu>


SVN revision: 54398
2010-11-10 10:54:53 +00:00
Carsten Haitzler caa1d813f4 no more debian dir in our svn - debian now handles this tehmselves.
SVN revision: 54287
2010-11-08 05:48:28 +00:00
Vincent Torri d0458b87eb cosmetic: compile the files in alphabetic order
SVN revision: 54253
2010-11-06 23:40:21 +00:00
Vincent Torri b4571378c2 and add file
SVN revision: 54251
2010-11-06 21:01:36 +00:00
Vincent Torri 899983412b * port eina_file_*_ls() on Windows and put the code in another file
* on Windows eina_file_stat_ls() is the same that eina_file_direct_ls()

SVN revision: 54250
2010-11-06 21:00:58 +00:00
Vincent Torri 8fa9c4a7ce add doxygen doc
SVN revision: 54249
2010-11-06 20:38:41 +00:00
Vincent Torri 38c55d2170 remove Eina_Matrixsparse_Item_Cell and Eina_Matrixsparse_Item_Row
as they are used absolutely nowhere.


SVN revision: 54226
2010-11-06 12:50:09 +00:00
Vincent Torri 2249122a54 better removal for EINA_ARG_NONNULL
SVN revision: 54225
2010-11-06 12:44:25 +00:00
Vincent Torri 4a5f42c22c remove EAPI from documentation
SVN revision: 54224
2010-11-06 12:41:37 +00:00
Vincent Torri 7ee0e4655b * improve doc
* remove eina_binshare_init() and eina_binshare_shutdown()
   from eina_binshare.h as they must not be exported


SVN revision: 54223
2010-11-06 12:34:55 +00:00
Vincent Torri eccd70139b formatting, whitespaces--
SVN revision: 54221
2010-11-06 07:37:52 +00:00
Cedric BAIL 57997619c9 * eina: fix eina_tiler_iterator_new API to be consistent with the
rest of the iterator API and usage.

	WARNING !!! THIS IS REALLY BAD BUT FOR CONSISTENCY, I THINK THAT THIS
	API BREAK WAS NEEDED. IN FACT IT'S MORE AN ABI BREAK AS IT WILL NOT
	TRIGGER WARNING OR ERROR IN CURRENT PROGRAM USING
	eina_tiler_iterator_new SO YOU ARE WARNED !

	Reported by playya <frederik.sdun@googlemail.com>.


SVN revision: 54153
2010-11-04 14:53:00 +00:00
Cedric BAIL 64aa07c793 * eina: fix typos.
SVN revision: 54127
2010-11-03 17:32:07 +00:00
Cedric BAIL c40d642b02 * eina: fix possible race condition between opendir/readdir_r/pathconf.
See http://womble.decadent.org.uk/readdir_r-advisory.html .


SVN revision: 54117
2010-11-03 10:19:55 +00:00
Cedric BAIL 19bce347b0 * eina: use fstatat when available.
Maybe we could add an eina_file_lstat_ls.


SVN revision: 54108
2010-11-02 17:47:19 +00:00
Cedric BAIL 17973f336e * eina: add eina_file_stat_ls and guaranty that eina_file_direct_ls
will not call anything else than readdir_r.


SVN revision: 54105
2010-11-02 17:07:04 +00:00
Cedric BAIL eb4cd21f0c * eina: remove dirent so apps don't rely on non portable code.
SVN revision: 54103
2010-11-02 15:11:05 +00:00
Carsten Haitzler a08524ea65 aaagh. dirent... bad! too many things in dirent that are not portable
- d_type for example... so put that into the direct_info struct and
handle the compat in eina.



SVN revision: 54015
2010-10-30 05:48:07 +00:00
Tiago Rezende Campos Falcao fd1c8603ee Removing dead assignment.
Reported in:
http://people.profusion.mobi/~lfelipe/static_analysis/efl/efl-53990/eina/2010-10-29-1/report-w3Z1oM.html#EndPath

SVN revision: 53999
2010-10-29 17:19:19 +00:00