always zero out authentication strings
authorAlexandra Ellwood <lxs@mit.edu>
Fri, 10 Oct 2008 20:55:24 +0000 (20:55 +0000)
committerAlexandra Ellwood <lxs@mit.edu>
Fri, 10 Oct 2008 20:55:24 +0000 (20:55 +0000)
strings returned by the UI are usually passwords or pins
and should not get dripped all over memory.

ticket: new

git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@20863 dc483132-0cff-0310-8789-dd5450dbe970

src/kim/lib/kim_ui.c

index ccc59f44076daa00c89f4f4e499b540885b18bd2..e52cd9bb22085c27df043a40fba0dc14fd3e4187 100644 (file)
@@ -319,9 +319,9 @@ krb5_error_code kim_ui_prompter (krb5_context  in_krb5_context,
         
         /* Clean up reply buffer.  Saved passwords are allocated by KIM. */
         if (reply) {
-            memset (reply, '\0', strlen (reply));
-            if (got_saved_password) {
-                kim_string_free ((kim_string *) &reply);
+           if (got_saved_password) {
+               memset (reply, '\0', strlen (reply));
+               kim_string_free ((kim_string *) &reply);
              } else {
                 kim_ui_free_string (context, &reply);
             }
@@ -445,6 +445,9 @@ void kim_ui_free_string (kim_ui_context  *in_context,
     kim_error err = kim_ui_init_lazy (in_context);
     
     if (!err && in_context && io_string && *io_string) {
+        /* most ui strings are auth information so zero before freeing */
+        memset (*io_string, '\0', strlen (*io_string));
+        
         if (in_context->type == kim_ui_type_gui_plugin) {
             kim_ui_plugin_free_string (in_context, 
                                        io_string);