Go to file
Lucas De Marchi 2a8b05eb03 efreet: Fix efreet_init_parse for non existent file
The conversion to eina_file_map() in r78179 broke the error path of
efreet_init_parse(). Particularly if file doesn't exist. Since the variables
were not initialized it was trying to operate on random values from the stack.
So I got the following crash on E17:

#0  0x00007f238b0bbd67 in waitpid () from /usr/lib/libpthread.so.0
#1  0x00000000004397a3 in e_alert_show ()
#2  0x0000000000526392 in e_sigseg_act ()
#3  <signal handler called>
#4  0x0000000000000031 in ?? ()
#5  0x00007f239315df0f in efreet_ini_parse (file=file@entry=0x7fff39ce46f0 "/home/lucas/local/share/enlightenment/applications/defaults.list")
    at /home/lucas/p/e-svn/trunk/efreet/src/lib/efreet_ini.c:245
#6  0x00007f239315e100 in efreet_ini_new (file=0x7fff39ce46f0 "/home/lucas/local/share/enlightenment/applications/defaults.list")
    at /home/lucas/p/e-svn/trunk/efreet/src/lib/efreet_ini.c:82
#7  0x0000000000538174 in _e_util_default_terminal_get ()
#8  0x00000000005382dc in e_util_terminal_desktop_get ()
#9  0x00007f23706a1065 in e_fwin_init () from /home/lucas/local/lib/enlightenment/modules/fileman/linux-gnu-x86_64-ver-pre-svn-08/module.so
#10 0x00007f237069b524 in e_modapi_init () from /home/lucas/local/lib/enlightenment/modules/fileman/linux-gnu-x86_64-ver-pre-svn-08/module.so
#11 0x000000000050420d in e_module_enable ()
#12 0x0000000000504e77 in _e_module_cb_idler ()
#13 0x00007f238da22739 in _ecore_call_task_cb (data=<optimized out>, func=<optimized out>) at /home/lucas/p/e-svn/trunk/ecore/src/lib/ecore/ecore_private.h:265
#14 _ecore_idle_enterer_call () at /home/lucas/p/e-svn/trunk/ecore/src/lib/ecore/ecore_idle_enterer.c:234
#15 0x00007f238da24c1b in _ecore_main_loop_iterate_internal (once_only=once_only@entry=0) at /home/lucas/p/e-svn/trunk/ecore/src/lib/ecore/ecore_main.c:1826
#16 0x00007f238da252c7 in ecore_main_loop_begin () at /home/lucas/p/e-svn/trunk/ecore/src/lib/ecore/ecore_main.c:934
#17 0x0000000000436167 in main ()

Besides initializing the variables, there's no need to "goto" if the file
doesn't exist.... just return.




SVN revision: 78272
2012-10-19 23:33:05 +00:00
doc merge: add COPYING files (BSD 2-clause, LGPL and GPL) and doc 2012-09-19 06:57:03 +00:00
legacy efreet: Fix efreet_init_parse for non existent file 2012-10-19 23:33:05 +00:00
licenses cleaning up the base of efl tree moving files to subdirs 2012-09-27 03:02:12 +00:00
m4 efl: change a little bit API. 2012-10-19 07:13:08 +00:00
old cleaning up the base of efl tree moving files to subdirs 2012-09-27 03:02:12 +00:00
pc efl: do not support old pkg-config. 2012-10-10 21:37:47 +00:00
spec and make a single efl.spec file. 2012-09-27 03:09:17 +00:00
src Backport 78258/78259 to fix Eina amalgamation build. 2012-10-19 16:19:33 +00:00
.gitignore efl: ignore INSTALL 2012-10-10 20:28:58 +00:00
AUTHORS efl: backport Igor's eina patch. 2012-10-04 09:31:46 +00:00
COPYING cleaning up the base of efl tree moving files to subdirs 2012-09-27 03:02:12 +00:00
ChangeLog efl: add Eina_Thread API. 2012-10-19 05:47:33 +00:00
Makefile.am efl: introduce build profile, simplify options. 2012-10-10 18:43:15 +00:00
NEWS efl: add Eina_Thread API. 2012-10-19 05:47:33 +00:00
README efl: add --with-profile=debug, make dev faster. 2012-10-17 13:50:11 +00:00
autogen.sh merge: use autoreconf 2012-09-27 04:40:36 +00:00
configure.ac efl: change a little bit API. 2012-10-19 07:13:08 +00:00

README

EFL 1.7.99

******************************************************************************

 FOR ANY ISSUES PLEASE EMAIL:
 enlightenment-devel@lists.sourceforge.net

******************************************************************************

EFL is a collection of libraries for handling many common tasks a
developer man have such as data structures, communication, rendering,
widgets and more.

------------------------------------------------------------------------------
COMPILING AND INSTALLING:

  ./configure
  make
(do this as root unless you are installing in your users directories):
  make install

EFL build is based on "profiles". It will default to "dev" for
unreleased software and "release" for official tarballs. One can
change it with --with-profile=NAME, where NAME is one of:

  * dev: extra checks useful to test software.

  * debug: superset of dev, with debug features and assert().

  * release: optimizations and less checks so it runs faster.


CRYPTOGRAPHIC SYSTEM: EFL officially uses "openssl" library to do
signature, cipher and related. Alternatively one can use "gnutls"
(some distros are strict about licenses and want gnutls instead of
openssl) or disable it. One can change it with --with-crypto=NAME,
where NAME is one of: "openssl", "gnutls" and "none".