Fix technical buffer overrun in drive letter selection

Padding makes this safe, but moving onto the stack is cleaner.
This commit is contained in:
Kp 2013-12-08 16:53:10 +00:00
parent d16dff3a16
commit fddcfc8e99

View file

@ -1388,13 +1388,11 @@ static int select_file_handler(listbox *menu, d_event *event, browser *b)
if (event_key_get(event) == KEY_CTRLED + KEY_D)
{
newmenu_item *m;
char *text = NULL;
char text[4] = "c";
int rval = 0;
MALLOC(text, char, 2);
MALLOC(m, newmenu_item, 1);
snprintf(text, sizeof(char)*PATH_MAX, "c");
nm_set_item_input(m, 3, text);
nm_set_item_input(m, sizeof(text) - 1, text);
rval = newmenu_do( NULL, "Enter drive letter", 1, m, NULL, NULL );
text[1] = '\0';
snprintf(newpath, sizeof(char)*PATH_MAX, "%s:%s", text, sep);
@ -1405,7 +1403,6 @@ static int select_file_handler(listbox *menu, d_event *event, browser *b)
event->type = EVENT_WINDOW_CLOSED;
window_close(listbox_get_window(menu));
}
d_free(text);
d_free(m);
return 0;
}