diff --git a/src/slow_candidates.c b/src/slow_candidates.c index a9675e13e..882f88c52 100644 --- a/src/slow_candidates.c +++ b/src/slow_candidates.c @@ -315,14 +315,18 @@ void slow_candidates_next (hashcat_ctx_t *hashcat_ctx, void *extra_info) // this can overflow so we move it up - extra_info_combi->out_len += line_len; - - if (extra_info_combi->out_len <= sizeof (extra_info_combi->out_buf)) + if ((extra_info_combi->out_len + line_len) <= sizeof (extra_info_combi->out_buf)) { memcpy (extra_info_combi->out_buf + extra_info_combi->out_len, line_buf, line_len); + extra_info_combi->out_len += line_len; + memset (extra_info_combi->out_buf + extra_info_combi->out_len, 0, sizeof (extra_info_combi->out_buf) - extra_info_combi->out_len); } + else + { + extra_info_combi->out_len += line_len; + } extra_info_combi->comb_pos_prev = extra_info_combi->comb_pos;