Hi Simon,

Just wrote my first test apps with shisa (worked good, I
got compataible arcfour-hmac hashes out of shisa).

Running it with valgrind revealed two small memleaks:

- shisa_done() should free dbh->dbs, if it is != NULL.
- shisa_cfg_db() should free "db" (suggested patch
  appended)
- I don't know, if you like "const", I do.


    Elrond
--- config.c~   2005-05-26 17:12:32.000000000 +0200
+++ config.c    2006-03-22 23:17:10.000000000 +0100
@@ -47,7 +47,7 @@
  *   successfully.
  **/
 int
-shisa_cfg_db (Shisa * dbh, char *value)
+shisa_cfg_db (Shisa * dbh, const char *value)
 {
   char *p;
   char *db;
@@ -73,6 +73,7 @@
   if (backend == NULL)
     {
       shisa_info (dbh, "Unknown database type: `%s'.", db);
+      free (db);
       return SHISA_CFG_SYNTAX_ERROR;
     }
 
@@ -82,8 +83,10 @@
       shisa_info (dbh, "Cannot initialize `%s' database backend.\n"
                  "Location `%s' and options `%s'.", db,
                  location ? location : "N/A", options ? options : "N/A");
+      free (db);
       return rc;
     }
+  free (db);
 
   dbh->dbs = xrealloc (dbh->dbs, ++dbh->ndbs * sizeof (*dbh->dbs));
   dbh->dbs->backend = backend;
--- shisa.h~    2005-05-26 17:12:32.000000000 +0200
+++ shisa.h     2006-03-22 23:17:27.000000000 +0100
@@ -98,7 +98,7 @@
 
 /* cfg.c */
 extern int shisa_cfg (Shisa * dbh, char *option);
-extern int shisa_cfg_db (Shisa * dbh, char *value);
+extern int shisa_cfg_db (Shisa * dbh, const char *value);
 extern int shisa_cfg_from_file (Shisa * dbh, const char *cfg);
 extern const char *shisa_cfg_default_systemfile (Shisa * dbh);
 
_______________________________________________
Help-shishi mailing list
[email protected]
http://lists.gnu.org/mailman/listinfo/help-shishi

Reply via email to