FS#37710 - [parcellite] Cannot start after 1.17 update

Attached to Project: Community Packages
Opened by Liberty (helloworld1) - Saturday, 09 November 2013, 18:52 GMT
Last edited by Sergej Pupykin (sergej) - Monday, 11 November 2013, 10:33 GMT
Task Type Bug Report
Category Packages
Status Closed
Assigned To Sergej Pupykin (sergej)
Architecture x86_64
Severity Low
Priority Normal
Reported Version
Due in Version Undecided
Due Date Undecided
Percent Complete 100%
Votes 1
Private No

Details

Description:
1.16 works very well but 1.17 cannot start. I deleted the ~/.local/share/parcellite/ but it doesn't help.

$parcellite
Unable to load pref 'automatic_paste'
Unable to load pref 'auto_key'
Unable to load pref 'auto_mouse'
Unable to load pref 'key_input'
Unable to load pref 'restore_empty'
Unable to load pref 'rc_edit'
Unable to load pref 'current_on_top'
Unable to load pref 'persistent_history'
Unable to load pref 'persistent_separate'
Unable to load pref 'persistent_on_top'
Unable to load pref 'persistent_delim'
Unable to load pref 'nonprint_disp'
Unable to load pref 'multi_user'
Unable to load pref 'phistory_key'
zsh: segmentation fault (core dumped) parcellite


Additional info:
* package version(s)
community/parcellite 1.1.7-1 [installed]
Lightweight GTK+ clipboard manager


* config and/or log files etc.
GDB result (Recompiled with debug on):

[liberty@liberty-host parcellite]% gdb parcellite ~/pkgbuild/parcellite
GNU gdb (GDB) 7.6.1
Copyright (C) 2013 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law. Type "show copying"
and "show warranty" for details.
This GDB was configured as "x86_64-unknown-linux-gnu".
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>...
Reading symbols from /usr/bin/parcellite...done.
(gdb) run
Starting program: /usr/bin/parcellite
warning: no loadable sections found in added symbol-file system-supplied DSO at 0x7ffff7ffa000
warning: Could not load shared library symbols for linux-vdso.so.1.
Do you need "set solib-search-path" or "set sysroot"?
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/usr/lib/libthread_db.so.1".
Unable to load pref 'automatic_paste'
Unable to load pref 'auto_key'
Unable to load pref 'auto_mouse'
Unable to load pref 'key_input'
Unable to load pref 'restore_empty'
Unable to load pref 'rc_edit'
Unable to load pref 'current_on_top'
Unable to load pref 'persistent_history'
Unable to load pref 'persistent_separate'
Unable to load pref 'persistent_on_top'
Unable to load pref 'persistent_delim'
Unable to load pref 'nonprint_disp'
Unable to load pref 'multi_user'
Unable to load pref 'phistory_key'

Program received signal SIGSEGV, Segmentation fault.
0x000000000040e05e in set_keys_from_prefs () at preferences.c:387
387 if(l!=i && 0 != keylist[l].keyval[0]){
(gdb) bt
#0 0x000000000040e05e in set_keys_from_prefs () at preferences.c:387
#1 0x000000000040e1bf in check_sanity () at preferences.c:420
#2 0x000000000040e591 in read_preferences () at preferences.c:576
#3 0x00000000004077ce in main (argc=1, argv=0x7fffffffe598) at main.c:2201
(gdb) print l
$1 = 2
(gdb) print keylist
$2 = 0x617b40 <keylist>
(gdb) print keylist[2]
$3 = {name = 0x411494 "phistory_key", keyval = 0x0, keyfunc = 0x4084a0 <phistory_hotkey>}
(gdb) print keylist[2].keyval
$4 = (gchar *) 0x0


Steps to reproduce:
This task depends upon

Closed by  Sergej Pupykin (sergej)
Monday, 11 November 2013, 10:33 GMT
Reason for closing:  Fixed
Comment by Liberty (helloworld1) - Saturday, 09 November 2013, 19:01 GMT
This patch will workaround the problem:

diff -ruN parcellite-1.1.7/src/preferences.c parcellite-1.1.7a/src/preferences.c
--- parcellite-1.1.7/src/preferences.c 2013-10-15 10:39:04.000000000 -0700
+++ parcellite-1.1.7a/src/preferences.c 2013-11-09 10:59:37.773000854 -0800
@@ -381,7 +381,7 @@
}
/**now go through and make sure we have no duplicates */
for (i=0;NULL != keylist[i].name; ++i){
- if(0 != keylist[i].keyval[0]){
+ if(NULL != keylist[i].keyval && 0 != keylist[i].keyval[0]){
/**see if it exists elsewhere */
for (l=0;NULL != keylist[l].name; ++l){
if(l!=i && 0 != keylist[l].keyval[0]){

Loading...