On Sun, Dec 02, 2018 at 02:48:47PM -0500, Jaroslav Skarvada wrote: > src/posttls-finger/posttls-finger.c:1412: > # 1410| if (state->smtp == 0) { > # 1411| if (strncmp(dest, "unix:", 5) == 0) { > # 1412|-> connect_unix(state, dest + 5); > # 1413| if (!state->stream) > # 1414| msg_info("Failed to establish session to %s: %s",
That's not so much a memory leak as a bug in the little used support for unix-domain sockets. Connections to unix-domain sockets will always appear to fail. The correct code is: --- src/posttls-finger/posttls-finger.c +++ src/posttls-finger/posttls-finger.c @@ -1547,7 +1547,7 @@ static int connect_dest(STATE *state) */ if (state->smtp == 0) { if (strncmp(dest, "unix:", 5) == 0) { - connect_unix(state, dest + 5); + state->stream = connect_unix(state, dest + 5); if (!state->stream) msg_info("Failed to establish session to %s: %s", dest, vstring_str(state->why->reason)); > src/util/dict_random.c:112: leaked_storage: Variable "argv" ... > # 110| || ((argv = argv_splitq(saved_name, CHARS_COMMA_SP, > CHARS_BRACE)), > # 111| (argv->argc == 0))) > # 112|-> DICT_RANDOM_RETURN(dict_surrogate(DICT_TYPE_RANDOM, name, > # 113| open_flags, dict_flags, > # 114| "bad syntax: \"%s:%s\"; " This code was refactored in postfix-3.4-20181105, and the "leak" is gone. In earlier versions this "leak" only happens during process initialization (i.e. just once per process, so not important) and only for a malformed "random" table definition with no values. I don't think this warrants any changes for the earlier releases. -- Viktor.