On Thu, 2010-09-02 at 11:42 +0200, Len7hir wrote: > Safe_memset is also called from: > pool_alloconly_clear, pool_alloconly_destroy,
Only when pool was created by pool_alloconly_create_clean(), which isn't used anywhere. > pool_system_clean_free Also this isn't used anywhere. I should probably remove these clean-pools since my original idea where to use them was a bad idea after all. > and client_destroy (in login-common/client-common.c) For clearing the password, yes. > Original code has: > if (data[i] == '\n') { > (...) > if (data[i-1] != '\r') > stream->w_buffer[dest++] = '\r'; > if (dest == stream->buffer_size) > break; > stream->w_buffer[dest++] = data[i] is not executed (no space in dest) > > i_stream_skip(stream->parent, i); > i is set on '\n' Yes, but lets say i=1 and data[1] == '\n', then i_stream_skip() skips one byte (the data[0]) but not the '\n'.