readline: Fix unchecked strdup() by converting to g_strdup()

Signed-off-by: Markus Armbruster <armbru@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
This commit is contained in:
Markus Armbruster 2013-01-22 11:07:59 +01:00 committed by Stefan Hajnoczi
parent d3f8e138c2
commit c3baa5f9e4

View File

@ -247,14 +247,14 @@ static void readline_hist_add(ReadLineState *rs, const char *cmdline)
} }
if (idx == READLINE_MAX_CMDS) { if (idx == READLINE_MAX_CMDS) {
/* Need to get one free slot */ /* Need to get one free slot */
free(rs->history[0]); g_free(rs->history[0]);
memmove(rs->history, &rs->history[1], memmove(rs->history, &rs->history[1],
(READLINE_MAX_CMDS - 1) * sizeof(char *)); (READLINE_MAX_CMDS - 1) * sizeof(char *));
rs->history[READLINE_MAX_CMDS - 1] = NULL; rs->history[READLINE_MAX_CMDS - 1] = NULL;
idx = READLINE_MAX_CMDS - 1; idx = READLINE_MAX_CMDS - 1;
} }
if (new_entry == NULL) if (new_entry == NULL)
new_entry = strdup(cmdline); new_entry = g_strdup(cmdline);
rs->history[idx] = new_entry; rs->history[idx] = new_entry;
rs->hist_entry = -1; rs->hist_entry = -1;
} }