Index: /trunk/Ohana/src/libkapa/src/IOfuncs.c
===================================================================
--- /trunk/Ohana/src/libkapa/src/IOfuncs.c	(revision 16465)
+++ /trunk/Ohana/src/libkapa/src/IOfuncs.c	(revision 16466)
@@ -82,4 +82,6 @@
   va_end (argp);
 
+  free (message);
+
   return (status);
 }
@@ -139,4 +141,6 @@
   va_end (argp);
 
+  free (message);
+
   return (1);
 }
@@ -158,6 +162,8 @@
       fprintf (stderr, "extra data in buffer: %d bytes\n", Nbytes);
       fprintf (stderr, "garbage: %s\n", answer);
+      free (answer);
       return (FALSE);
   }
+  free (answer);
   return (TRUE);
 }
Index: /trunk/Ohana/src/libohana/src/config.c
===================================================================
--- /trunk/Ohana/src/libohana/src/config.c	(revision 16465)
+++ /trunk/Ohana/src/libohana/src/config.c	(revision 16466)
@@ -93,4 +93,5 @@
     }
   }
+  free (find);
 
   /* we eliminate this option: this is just confusing */
@@ -107,5 +108,4 @@
     }
   }
-  free (find);
 # endif
 
Index: /trunk/Ohana/src/opihi/cmd.basic/shell.c
===================================================================
--- /trunk/Ohana/src/opihi/cmd.basic/shell.c	(revision 16465)
+++ /trunk/Ohana/src/opihi/cmd.basic/shell.c	(revision 16466)
@@ -3,4 +3,7 @@
 static char *defshell = "/bin/sh";
 static char *cmdflag = "-c";
+
+// XXX add the ability to exec without a separate shell
+// XXX add an option to modify the timeout
 
 int shell (int argc, char **argv) {
@@ -42,4 +45,5 @@
     exit (1);
   }
+  free (args[2]);
   free (args);
   
Index: /trunk/Ohana/src/opihi/lib.data/book.c
===================================================================
--- /trunk/Ohana/src/opihi/lib.data/book.c	(revision 16465)
+++ /trunk/Ohana/src/opihi/lib.data/book.c	(revision 16466)
@@ -39,5 +39,4 @@
     for (i = 0; i < book[0].Npages; i++) {
 	FreePage (book[0].pages[i]);
-	free (book[0].pages[i]);
 	free (book[0].pageIDs[i]);
     }
