Added missing memset's for sensitive data.
authorPekka Riikonen <priikone@silcnet.org>
Sat, 1 Feb 2003 10:43:37 +0000 (10:43 +0000)
committerPekka Riikonen <priikone@silcnet.org>
Sat, 1 Feb 2003 10:43:37 +0000 (10:43 +0000)
apps/irssi/src/fe-text/gui-readline.c
apps/silcd/command.c
lib/silcclient/command.c

index 66867ffb7de0924074087efaf629eacbe806e4ab..4de1936e3adc52b853ab2dbb6498172eea1a42cb 100644 (file)
@@ -182,6 +182,7 @@ static void key_send_line(void)
 {
        HISTORY_REC *history;
         char *str, *add_history;
+       gint flags = (redir ? redir->flags : 0);
 
        str = gui_entry_get_text(active_entry);
 
@@ -197,9 +198,13 @@ static void key_send_line(void)
                            active_win->active_server,
                            active_win->active);
        } else {
-               if (redir->flags & ENTRY_REDIRECT_FLAG_HIDDEN)
+               if (flags & ENTRY_REDIRECT_FLAG_HIDDEN && add_history) {
+                       memset(add_history, 0, strlen(add_history));
                         g_free_and_null(add_history);
+               }
                handle_entry_redirect(str);
+               if (flags & ENTRY_REDIRECT_FLAG_HIDDEN && str)
+                       memset(str, 0, strlen(str));
        }
 
        if (add_history != NULL) {
index 678bfb3d8dae2e073feecf09939efcac76438084..a64eb06a90bffd5ef715d4796b3e1ac2f8738141 100644 (file)
@@ -2184,6 +2184,8 @@ static void silc_server_command_join_channel(SilcServer server,
   silc_buffer_free(ban_list);
 
  out:
+  if (passphrase)
+    memset(passphrase, 0, strlen(passphrase));
   silc_free(passphrase);
 }
 
index 3131900efdc680fb6379fb6dafc5765c79639bef..40e1d2566f0eb7c3dbbc510ee7d56e026a5e1e00 100644 (file)
@@ -1175,6 +1175,8 @@ SILC_CLIENT_CMD_FUNC(join)
   silc_buffer_free(idp);
   if (auth)
     silc_buffer_free(auth);
+  if (passphrase)
+    memset(passphrase, 0, strlen(passphrase));
   silc_free(passphrase);
 
   /* Notify application */
@@ -1935,6 +1937,7 @@ static void silc_client_command_oper_send(unsigned char *data,
                          0, NULL, NULL, buffer->data, buffer->len, TRUE);
 
   silc_buffer_free(buffer);
+  silc_buffer_clear(auth);
   silc_buffer_free(auth);
 
   /* Notify application */
@@ -2006,6 +2009,7 @@ static void silc_client_command_silcoper_send(unsigned char *data,
                          0, NULL, NULL, buffer->data, buffer->len, TRUE);
 
   silc_buffer_free(buffer);
+  silc_buffer_clear(auth);
   silc_buffer_free(auth);
 
   /* Notify application */