imap-send: avoid buffer overflow

We format the password prompt in an 80-character static
buffer. It contains the remote host and username, so it's
unlikely to overflow (or be exploitable by a remote
attacker), but there's no reason not to be careful and use
a strbuf.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Jeff King 2011-12-10 05:40:45 -05:00 коммит произвёл Junio C Hamano
Родитель 861444f6d7
Коммит 50d0158fbb
1 изменённых файлов: 4 добавлений и 3 удалений

Просмотреть файл

@ -1209,9 +1209,10 @@ static struct store *imap_open_store(struct imap_server_conf *srvc)
goto bail;
}
if (!srvc->pass) {
char prompt[80];
sprintf(prompt, "Password (%s@%s): ", srvc->user, srvc->host);
arg = git_getpass(prompt);
struct strbuf prompt = STRBUF_INIT;
strbuf_addf(&prompt, "Password (%s@%s): ", srvc->user, srvc->host);
arg = git_getpass(prompt.buf);
strbuf_release(&prompt);
if (!arg) {
perror("getpass");
exit(1);