Fixed a race condition when a session finishes the input-base was freed but accessed afterwards

Fixes https://github.com/hashcat/hashcat/issues/1192
This commit is contained in:
Jens Steube
2017-03-19 20:41:50 +01:00
parent 9558fcc012
commit c7ed2ade17
3 changed files with 14 additions and 13 deletions
+2 -1
View File
@@ -22,7 +22,8 @@
- Fixed a problem where --stdout combined with custom charsets incorrectly displayed an error message
- Fixed a typo that resulted in the minimum password length not being correctly initialized
- Fixed a problem with parsing and displaying -m 7000 = Fortigate (FortiOS) hashes
- Fixed --remove was not applied in case all hashes have been cracked by help of potfile or weak-hash check
- Fixed --remove was not applied in case all hashes have been cracked by potfile or weak-hash check
- Fixed a race condition when a session finishes the input-base was freed but accessed afterwards
##
## Technical
+11 -11
View File
@@ -188,7 +188,7 @@ char *status_get_session (const hashcat_ctx_t *hashcat_ctx)
{
const user_options_t *user_options = hashcat_ctx->user_options;
return user_options->session;
return strdup (user_options->session);
}
char *status_get_status_string (const hashcat_ctx_t *hashcat_ctx)
@@ -436,7 +436,7 @@ char *status_get_input_base (const hashcat_ctx_t *hashcat_ctx)
{
const straight_ctx_t *straight_ctx = hashcat_ctx->straight_ctx;
return straight_ctx->dict;
return strdup (straight_ctx->dict);
}
else if (user_options->attack_mode == ATTACK_MODE_COMBI)
{
@@ -444,30 +444,30 @@ char *status_get_input_base (const hashcat_ctx_t *hashcat_ctx)
if (combinator_ctx->combs_mode == COMBINATOR_MODE_BASE_LEFT)
{
return combinator_ctx->dict1;
return strdup (combinator_ctx->dict1);
}
else
{
return combinator_ctx->dict2;
return strdup (combinator_ctx->dict2);
}
}
else if (user_options->attack_mode == ATTACK_MODE_BF)
{
const mask_ctx_t *mask_ctx = hashcat_ctx->mask_ctx;
return mask_ctx->mask;
return strdup (mask_ctx->mask);
}
else if (user_options->attack_mode == ATTACK_MODE_HYBRID1)
{
const straight_ctx_t *straight_ctx = hashcat_ctx->straight_ctx;
return straight_ctx->dict;
return strdup (straight_ctx->dict);
}
else if (user_options->attack_mode == ATTACK_MODE_HYBRID2)
{
const straight_ctx_t *straight_ctx = hashcat_ctx->straight_ctx;
return straight_ctx->dict;
return strdup (straight_ctx->dict);
}
return NULL;
@@ -569,11 +569,11 @@ char *status_get_input_mod (const hashcat_ctx_t *hashcat_ctx)
if (combinator_ctx->combs_mode == COMBINATOR_MODE_BASE_LEFT)
{
return combinator_ctx->dict2;
return strdup (combinator_ctx->dict2);
}
else
{
return combinator_ctx->dict1;
return strdup (combinator_ctx->dict1);
}
}
else if (user_options->attack_mode == ATTACK_MODE_BF)
@@ -584,13 +584,13 @@ char *status_get_input_mod (const hashcat_ctx_t *hashcat_ctx)
{
const mask_ctx_t *mask_ctx = hashcat_ctx->mask_ctx;
return mask_ctx->mask;
return strdup (mask_ctx->mask);
}
else if (user_options->attack_mode == ATTACK_MODE_HYBRID2)
{
const mask_ctx_t *mask_ctx = hashcat_ctx->mask_ctx;
return mask_ctx->mask;
return strdup (mask_ctx->mask);
}
return NULL;