diff options
Diffstat (limited to 'libdb')
-rw-r--r-- | libdb/db_lookup.c | 18 | ||||
-rw-r--r-- | libdb/db_store.c | 16 |
2 files changed, 15 insertions, 19 deletions
diff --git a/libdb/db_lookup.c b/libdb/db_lookup.c index 2cacdb73..b43269a6 100644 --- a/libdb/db_lookup.c +++ b/libdb/db_lookup.c @@ -199,17 +199,15 @@ struct mandata *split_content (MYDBM_FILE dbf, char *cont_ptr) info = XZALLOC (struct mandata); info->name = copy_if_set (*(data++)); - info->ext = *(data++); - info->sec = *(data++); + info->ext = xstrdup (*(data++)); + info->sec = xstrdup (*(data++)); info->mtime.tv_sec = (time_t) atol (*(data++)); info->mtime.tv_nsec = atol (*(data++)); info->id = **(data++); /* single char id */ - info->pointer = *(data++); - info->filter = *(data++); - info->comp = *(data++); - info->whatis = *(data); - - info->addr = cont_ptr; + info->pointer = xstrdup (*(data++)); + info->filter = xstrdup (*(data++)); + info->comp = xstrdup (*(data++)); + info->whatis = xstrdup (*(data)); return info; } @@ -368,8 +366,8 @@ static gl_list_t dblookup (MYDBM_FILE dbf, const char *page, } gl_list_free (refs); - MYDBM_FREE_DPTR (cont); } + MYDBM_FREE_DPTR (cont); return infos; } @@ -505,8 +503,6 @@ nextpage: MYDBM_FREE_DPTR (key); end = man_btree_nextkeydata (dbf, &key, &cont); #endif /* !BTREE */ - if (info) - info->addr = NULL; free_mandata_struct (info); } diff --git a/libdb/db_store.c b/libdb/db_store.c index 92926dc7..eae5c271 100644 --- a/libdb/db_store.c +++ b/libdb/db_store.c @@ -135,13 +135,13 @@ static datum make_content (struct mandata *in) memset (&cont, 0, sizeof cont); if (!in->pointer) - in->pointer = dash; - if (!in->filter) - in->filter = dash; + in->pointer = xstrdup (dash); if (!in->comp) - in->comp = dash; + in->comp = xstrdup (dash); + if (!in->filter) + in->filter = xstrdup (dash); if (!in->whatis) - in->whatis = dash + 1; + in->whatis = xstrdup (dash + 1); value = xasprintf ( "%s\t%s\t%s\t%ld\t%ld\t%c\t%s\t%s\t%s\t%s", @@ -278,7 +278,7 @@ int dbstore (MYDBM_FILE dbf, struct mandata *in, const char *base) info = split_content (dbf, MYDBM_DPTR (cont)); ret = replace_if_necessary (dbf, in, info, newkey, newcont); - /* MYDBM_FREE_DPTR (cont); */ + MYDBM_FREE_DPTR (cont); free_mandata_struct (info); MYDBM_FREE_DPTR (newkey); MYDBM_FREE_DPTR (newcont); @@ -348,7 +348,7 @@ int dbstore (MYDBM_FILE dbf, struct mandata *in, const char *base) newcont = make_content (in); ret = replace_if_necessary (dbf, in, old, oldkey, newcont); - /* MYDBM_FREE_DPTR (oldcont); */ + MYDBM_FREE_DPTR (oldcont); free_mandata_struct (old); MYDBM_FREE_DPTR (newcont); MYDBM_FREE_DPTR (lastkey); @@ -412,7 +412,7 @@ int dbstore (MYDBM_FILE dbf, struct mandata *in, const char *base) if (MYDBM_REPLACE (dbf, oldkey, newcont)) gripe_replace_key (dbf, MYDBM_DPTR (oldkey)); - /* MYDBM_FREE_DPTR (oldcont); */ + MYDBM_FREE_DPTR (oldcont); free_mandata_struct (old); MYDBM_FREE_DPTR (newcont); free (old_name); |