Fix technical buffer overrun in drive letter selection
Padding makes this safe, but moving onto the stack is cleaner.
This commit is contained in:
parent
d16dff3a16
commit
fddcfc8e99
|
@ -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;
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue