task_save_handler - rewrite code - put string on stack instead
of heap, avoid using strlcat
This commit is contained in:
parent
c722653c97
commit
c05ec27334
|
@ -537,8 +537,7 @@ static void task_save_handler(retro_task_t *task)
|
||||||
|
|
||||||
if (task_get_cancelled(task) || written != remaining)
|
if (task_get_cancelled(task) || written != remaining)
|
||||||
{
|
{
|
||||||
size_t err_size = 8192 * sizeof(char);
|
char msg[PATH_MAX_LENGTH];
|
||||||
char *err = (char*)malloc(err_size);
|
|
||||||
|
|
||||||
if (state->flags & SAVE_TASK_FLAG_UNDO_SAVE)
|
if (state->flags & SAVE_TASK_FLAG_UNDO_SAVE)
|
||||||
{
|
{
|
||||||
|
@ -546,21 +545,19 @@ static void task_save_handler(retro_task_t *task)
|
||||||
MSG_FAILED_TO_UNDO_SAVE_STATE);
|
MSG_FAILED_TO_UNDO_SAVE_STATE);
|
||||||
RARCH_ERR("[State]: %s \"%s\".\n", failed_undo_str,
|
RARCH_ERR("[State]: %s \"%s\".\n", failed_undo_str,
|
||||||
undo_save_buf.path);
|
undo_save_buf.path);
|
||||||
err[0] = '\0';
|
snprintf(msg, sizeof(msg), "%s \"RAM\".", failed_undo_str);
|
||||||
snprintf(err, err_size - 1, "%s \"RAM\".", failed_undo_str);
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
size_t _len = strlcpy(err,
|
size_t _len = strlcpy(msg,
|
||||||
msg_hash_to_str(MSG_FAILED_TO_SAVE_STATE_TO),
|
msg_hash_to_str(MSG_FAILED_TO_SAVE_STATE_TO),
|
||||||
err_size - 1);
|
sizeof(msg));
|
||||||
err[ _len] = ' ';
|
msg[ _len] = ' ';
|
||||||
err[++_len] = '\0';
|
msg[++_len] = '\0';
|
||||||
strlcat(err, state->path, err_size - 1);
|
strlcpy(msg + _len, state->path, sizeof(msg) - _len);
|
||||||
}
|
}
|
||||||
|
|
||||||
task_set_error(task, strdup(err));
|
task_set_error(task, strdup(msg));
|
||||||
free(err);
|
|
||||||
task_save_handler_finished(task, state);
|
task_save_handler_finished(task, state);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue