From: Pekka Riikonen Date: Fri, 1 Jun 2007 21:57:13 +0000 (+0000) Subject: Fixed key pair loading crash with SILC Plugin when key pair X-Git-Tag: silc.client.1.1~8 X-Git-Url: http://git.silcnet.org/gitweb/?p=silc.git;a=commitdiff_plain;h=1e6ae2b9ebe7e8a77b6b2ed5e0ea2e80752b5f73 Fixed key pair loading crash with SILC Plugin when key pair loading fails. Fixed help and script installation paths with SILC Client. --- diff --git a/CHANGES b/CHANGES index 4620accc..fb5fd2e9 100644 --- a/CHANGES +++ b/CHANGES @@ -1,3 +1,21 @@ +Sat Jun 2 00:51:57 EEST 2007 Pekka Riikonen + + * If public key/private key loading fails set the return + pointer to NULL. Affected file is lib/silccrypt/silcpkcs.c. + + * If private key loading fails in silc_load_key_pair free the + loaded public key. Affected file is + lib/silcapputil/silcapputil.c. + + * Fixed key pair loading crash with SILC Plugin if key pair + loading fails. Affected file is + apps/irssi/src/silc/core/silc-core.c. + + * Fixed SILC Client help and script file installation path + to go to prefix/share/silc. Affected files are + apps/irssi/src/scripts/Makefile.am and + apps/irssi/docs/help/Makefile.am.gen. + Thu May 31 16:49:13 EEST 2007 Pekka Riikonen * Fixed UTC offset minutes to be actually minutes. Affected diff --git a/apps/irssi/docs/help/Makefile.am.gen b/apps/irssi/docs/help/Makefile.am.gen index b00fe062..ff9b0e0d 100644 --- a/apps/irssi/docs/help/Makefile.am.gen +++ b/apps/irssi/docs/help/Makefile.am.gen @@ -5,8 +5,8 @@ helpdir = $(datadir)/irssi/help/silc SILCHELP = silc ED = else -helpdir = $(datadir)/irssi/help -SILCHELP = +helpdir = $(datadir)/silc/help +SILCHELP = ED = silc endif diff --git a/apps/irssi/scripts/Makefile.am b/apps/irssi/scripts/Makefile.am index 97a79916..69fa88a4 100644 --- a/apps/irssi/scripts/Makefile.am +++ b/apps/irssi/scripts/Makefile.am @@ -1,6 +1,10 @@ SUBDIRS = examples +if SILCPLUGIN scriptdir = $(datadir)/irssi/scripts +else +scriptdir = $(datadir)/silc/scripts +endif script_DATA = \ autoop.pl \ diff --git a/apps/irssi/scripts/examples/Makefile.am b/apps/irssi/scripts/examples/Makefile.am index c8d8c8e0..82362a0c 100644 --- a/apps/irssi/scripts/examples/Makefile.am +++ b/apps/irssi/scripts/examples/Makefile.am @@ -1,4 +1,9 @@ + +if SILCPLUGIN scriptdir = $(datadir)/irssi/scripts +else +scriptdir = $(datadir)/silc/scripts +endif script_DATA = \ command.pl \ diff --git a/apps/irssi/src/Makefile.am b/apps/irssi/src/Makefile.am index 13de33af..d1b8d6a7 100644 --- a/apps/irssi/src/Makefile.am +++ b/apps/irssi/src/Makefile.am @@ -17,9 +17,6 @@ else SBDRS=lib-popt lib-config core endif -pkginc_srcdir=$(pkgincludedir)/src -pkginc_src_HEADERS = \ - common.h noinst_HEADERS = \ common.h diff --git a/apps/irssi/src/silc/core/clientutil.c b/apps/irssi/src/silc/core/clientutil.c index 58ec608f..83634733 100644 --- a/apps/irssi/src/silc/core/clientutil.c +++ b/apps/irssi/src/silc/core/clientutil.c @@ -52,7 +52,7 @@ void silc_client_print_list(char *list) int i=0; items = g_strsplit(list, ",", -1); - + while (items[i] != NULL) printformat_module("fe-common/silc", NULL, NULL, MSGLEVEL_CRAP, SILCTXT_CONFIG_LIST, @@ -430,7 +430,7 @@ void change_private_key_passphrase(const char *answer, CREATE_KEY_REC *rec) ENTRY_REDIRECT_FLAG_HIDDEN, rec); return; } - + if ((rec->passphrase == NULL) && (answer) && (*answer != '\0')) { rec->passphrase = g_strdup(answer); keyboard_entry_redirect((SIGNAL_FUNC) change_private_key_passphrase, @@ -454,7 +454,7 @@ void change_private_key_passphrase(const char *answer, CREATE_KEY_REC *rec) } if (silc_change_private_key_passphrase(rec->file, rec->old, - (rec->passphrase == NULL ? + (rec->passphrase == NULL ? "" : rec->passphrase)) == TRUE) printformat_module("fe-common/silc", NULL, NULL, MSGLEVEL_CRAP, SILCTXT_CONFIG_PASSCHANGE); diff --git a/apps/irssi/src/silc/core/silc-core.c b/apps/irssi/src/silc/core/silc-core.c index 3f7677f2..07385ed4 100644 --- a/apps/irssi/src/silc/core/silc-core.c +++ b/apps/irssi/src/silc/core/silc-core.c @@ -826,7 +826,9 @@ void silc_core_deinit(void) chat_protocol_unregister("SILC"); - silc_pkcs_public_key_free(irssi_pubkey); - silc_pkcs_private_key_free(irssi_privkey); + if (irssi_pubkey) + silc_pkcs_public_key_free(irssi_pubkey); + if (irssi_privkey) + silc_pkcs_private_key_free(irssi_privkey); silc_client_free(silc_client); }