here is a patch.
1. free() already null-checks the passed argument, so it is not
necessary to do 'if(x) free(x)'.
2. Moved some '{free(x); x = NULL}' to E_FREE.
3. In e_start_main.c, 'buf' is allocated with the size of the
two arguments + '=', so we don't need to check for lenght;
we should use sprintf().
thanks
Maxime Villard
SVN revision: 81364
As I've said before, I'm attached a patch for minor bugs in the e17 again.
Please take a look at attached patch.
01. missing E_FREE(wev) if zone is null
File: src/bin/e_actions.c: 1467
Function: ACT_FN_GO_EDGE macro function
null check of zone and wev, it would be better to separate them.
02. dead code
File: src/bin/e_configure.c: 338
Function: _e_configure_efreet_desktop_update
03. array buf might be overwritten by "buf[i] = '\0'"
File: src/bin/e_eap_editor.c: 412
Function: _e_desktop_edit_user_local_desktop_filename_generate
04. missing null check
File: src/bin/e_fm.c
Function: e_fm2_icon_get: 2196
It would be better to check ic->info.file in e_fm2_icon_get
before passing to _e_fm2_file_is_edje because it doesn't check
null pointer.
05. array 'path' might be overwritten by "path[i + 1] = XXX"
File: src/bin/e_fm.c: 4299
Function: _e_fm2_uri_parse
06. missing null check
File: src/bin/e_fm_device.c: 468
Function: e_fm2_device_mount_find
If the null pointer is passed to e_fm2_device_mount_find,
then it attempt to compare string using strncmp without null
check.
e.g., e_fm2_path_set
-> real_path = _e_fm2_dev_path_map: this function could return null.
-> sd->realpath = real_path;
-> e_fm2_device_mount_find(sd->realpath)
07. missing free(fstrip)
File: src/bin/e_import_config_dialog.c: 34
Function: _import_edj_gen
08. missing _module_free(cfm)
File: src/bin/e_int_config_modules.c: 530
Function: _load_modules
09. missing free(class) in for loop
File: src/bin/e_int_menus.c: 1187
Function: _e_int_menus_clients_add_by_class
10. missing free(roots)
File: src/bin/e_main.c: 1646
Function: _e_main_screens_init
Actually only e_win_init function could return 0.
But I've added free to other codes for the consistency.
11. missing null check of 'es->cfg'
File: src/bin/e_shelf.c: 2583
Function: _e_shelf_bindings_add
'es->cfg' might be null. please look at e_shelf_position_calc.
12. no ect->category check before comparing string values
File: src/bin/e_theme.c: 387
Function: e_theme_config_remove
I'm not sure, but inner if block checks ect->category before
deleting a string.
13. missing E_FREE(wcb) in while loop
File: src/bin/e_widget_ilist.c: 146
Function: _queue_timer
14. dereferencing freed pointer 'entry'
File: src/modules/quickaccess/e_mod_quickaccess.c: 583
Function: _e_qa_event_border_remove_cb
15. missing E_FREE(trov)
File: src/modules/tiling/e_mod_tiling.c: 3106
Function: _do_transition_overlay
Thanks & Regards,
Gwanglim
SVN revision: 80231
I'm attaching a patch for some minor bugs in the e17.
Please take a look at attached patch.
01. missing E_FREE(inst)
File: src/bin/e_exec.c: 347
Function: _e_exec_cb_exec
02. missing null check
File: src/bin/e_fm.c: 10173
Function: _e_fm_error_dialog
I'm not sure, but all other codes always check the return
value of e_fm2_op_registry_entry_get except here.
03. missing free(slave)
File: src/bin/e_fm_ipc.c: 804
Function: _e_fm_ipc_slave_run
04. eina_list_remove after free
File: src/bin/e_fm/e_fm_ipc.c :1325
Function: _e_fm_ipc_cb_fop_trash_idler
05. invalid check for _udisks_del, it might be _udisks_chg.
File: src/bin/e_fm/e_fm_main_udisks.c : 162
Function: _e_fm_main_udisks_test
06. uninitialized gx and gy values
File: src/bin/e_gadcon_popup.c: 172
Function: _e_gadcon_popup_position
These could be changed in e_gadcon_client_geometry_get
if gcc->o_base is null.
07. unnecessary code 'evas = e_win_evas_get(dia->win)'
File: src/bin/e_import_config_dialog.c: 456
Function: e_import_config_dialog_show
08. missing free(sizes)
src/bin/e_randr_11_serialization.c: 136
Function: _11_try_restore_configuration()
09. unnecessary variable output_info
File: src/bin/e_randr_12.c: 560
Function: _output_property_change_event_cb
10. eina_list_remove after free
File: src/bin/e_randr_12_serialization.c : 357
Function: _12_serialized_setup_update
11. no check of the return value of symlink.
File: src/bin/e_widget_fsel.c: 84
Function: _e_wid_fsel_favorites_add
12. no evr->var check before comparing string values
File: src/modules/conf_applications/e_int_config_defapps.c: 432
Function: _basic_apply
13. missing error message or check return value of edje_file_group_exists
File: src/modules/conf_theme/e_int_config_theme.c: 333
Function: _open_test_cb
Anyway, I've added e_util_dialog_show if failed. Is it okay?
14. missing index range check
File: src/modules/gadman/e_mod_config.c: 153
Function: _cb_config
It could read negative array index, because return value of
e_widget_ilist_selected_get might be negative.
BR,
Gwanglim
SVN revision: 80020
Delaying rename entry by 0.75s makes absolutely no sense. As well
there is no sense in always rename if you click the label and the icon
was unselected (quite common in list views).
The proper behavior is to just rename the icon if it was selected, but
ignore the initial click used to select the icon, even if on
label. This is done by remembering the time it was selected, no need
for timer.
SVN revision: 77002
them right here. a whole window full of them. they take longer to gen
than images - but they work. evas_generic_loaders load them and gen
them if u have gstreamer support etc. sure - they are slower, but they
work. only thing we don't have is a timeout for a slow generic loader.
should add that to evas.
SVN revision: 76963