--- 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);