Displaying 6 results from an estimated 6 matches for "dict_deinit".
2014 Jul 07
1
[PATH] expire plugins segfault with misconfigured dict
...plugin: dict_init(blblbla) failed: Dictionary URI is missing ':':
blblbla
Jul 7 14:51:11 dovecot1 dovecot: lmtp(10548, lazy): Fatal: master:
service(lmtp): child 10548 killed with signal 11 (core dumps disabled)
Program received signal SIGSEGV, Segmentation fault.
0x00007f337d8af8ae in dict_deinit (_dict=0x8) at dict.c:87
87 struct dict *dict = *_dict;
(gdb) bt
#0 0x00007f337d8af8ae in dict_deinit (_dict=0x8) at dict.c:87
#1 0x00007f337c88f647 in expire_mail_user_deinit (user=0x1b60e80) at
expire-plugin.c:299
#2 0x00007f337cca3e7f in quota_user_deinit (user=0x1b60e80) at...
2007 Dec 10
1
dict: Leaked a t_pop() call in I/O handler
..._lookup(cache->dicts,
t_strdup_printf("%s\t%s", username, uri));
i_assert(entry != NULL && entry->refcount > 0);
if (--entry->refcount == 0) {
hash_remove(cache->dicts, entry->user_uri);
dict_deinit(&entry->dict);
i_free(entry->user_uri);
i_free(entry);
}
}
---- src/dict/dict-cache.c ----
Notice the "t_push()" call there. So calling t_pop() somewhere before
the end of the function, makes dovecot work like a charm (again).
P.D: I...
2016 Oct 17
1
Dict proxy client returning empty string instead of multiline string
...har* value, error;
dict_drivers_register_builtin();
dict_init(dict_uri, DICT_DATA_TYPE_STRING, username,
doveadm_settings->base_dir, &dict, &error);
dict_lookup(dict, pool_datastack_create(), key, &value);
printf(">%s\n", value); // outputs an empty string
dict_deinit(&dict);
I trimmed it to the bare minimal string manipulation functions involved
but cannot reproduce in that case:
pool_t pool = pool_datastack_create();
char* s1 = "test\001n\001rtest";
char* s2 = t_str_tabunescape(s1);
char* s3 = p_strdup(pool, s2);
printf("1>%...
2016 Oct 17
2
Dict proxy client returning empty string instead of multiline string
...n();
> > dict_init(dict_uri, DICT_DATA_TYPE_STRING, username,
> > doveadm_settings->base_dir, &dict, &error);
> > dict_lookup(dict, pool_datastack_create(), key, &value);
> > printf(">%s\n", value); // outputs an empty string
> > dict_deinit(&dict);
> >
> > I trimmed it to the bare minimal string manipulation functions involved
> > but cannot reproduce in that case:
> >
> > pool_t pool = pool_datastack_create();
> >
> > char* s1 = "test\001n\001rtest";
> > char* s2...
2016 Oct 17
2
Dict proxy client returning empty string instead of multiline string
Hi!
This does sound like a bug, we'll have look.
Aki
On 17.10.2016 01:26, Pierre Jaury wrote:
> I dived a little bit further into the rabbit hole, up to the point where
> debugging has become unpracticle but I still haven't found the root
> cause for sure.
>
> I read most of the code for "p_strdup" based on datastack memory pools
> (which are used for
2016 Oct 17
2
Dict proxy client returning empty string instead of multiline string
...uri, DICT_DATA_TYPE_STRING, username,
> >>> doveadm_settings->base_dir, &dict, &error);
> >>> dict_lookup(dict, pool_datastack_create(), key, &value);
> >>> printf(">%s\n", value); // outputs an empty string
> >>> dict_deinit(&dict);
> >>>
> >>> I trimmed it to the bare minimal string manipulation functions involved
> >>> but cannot reproduce in that case:
> >>>
> >>> pool_t pool = pool_datastack_create();
> >>>
> >>> char* s1 =...