upstream: fix off-by-one in sshbuf_dtob64() base64 wrapping that could

cause extra newlines to be appended at the end of the base64 text (ugly, but
harmless). Found and fixed by Sebastian Kinne

OpenBSD-Commit-ID: 9fe290bd68f706ed8f986a7704ca5a2bd32d7b68
This commit is contained in:
djm@openbsd.org 2019-07-18 13:26:00 +00:00 committed by Damien Miller
parent a192021fed
commit ed46a0c070
1 changed files with 2 additions and 2 deletions

View File

@ -1,4 +1,4 @@
/* $OpenBSD: sshbuf-misc.c,v 1.9 2019/07/16 13:18:39 djm Exp $ */ /* $OpenBSD: sshbuf-misc.c,v 1.10 2019/07/18 13:26:00 djm Exp $ */
/* /*
* Copyright (c) 2011 Damien Miller * Copyright (c) 2011 Damien Miller
* *
@ -114,7 +114,7 @@ sshbuf_dtob64(const struct sshbuf *d, struct sshbuf *b64, int wrap)
if (i % 70 == 69 && (r = sshbuf_put_u8(b64, '\n')) != 0) if (i % 70 == 69 && (r = sshbuf_put_u8(b64, '\n')) != 0)
goto fail; goto fail;
} }
if (i % 70 != 69 && (r = sshbuf_put_u8(b64, '\n')) != 0) if ((i - 1) % 70 != 69 && (r = sshbuf_put_u8(b64, '\n')) != 0)
goto fail; goto fail;
} else { } else {
if ((r = sshbuf_put(b64, s, strlen(s))) != 0) if ((r = sshbuf_put(b64, s, strlen(s))) != 0)