From c8317a348ea06c80c94e59753c179a0b7cc0484b Mon Sep 17 00:00:00 2001 From: "git@daemon.de" Date: Tue, 29 Jul 2014 13:01:14 +0200 Subject: [PATCH] do only pad if ! %4 --- libpcp/z85.c | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/libpcp/z85.c b/libpcp/z85.c index 91abd00..8e0e464 100644 --- a/libpcp/z85.c +++ b/libpcp/z85.c @@ -212,10 +212,18 @@ byte *pcp_z85_decode(PCPCTX *ptx, char *z85block, size_t *dstlen) { char *pcp_z85_encode(byte *raw, size_t srclen, size_t *dstlen) { int pos = 0; + byte *padded; size_t outlen, blocklen, zlen; - /* make z85 happy (size % 4) */ - byte *padded = pcp_padfour(raw, srclen, &outlen); + if(srclen %4 == 0) { + /* no padding required */ + padded = raw; + outlen = srclen; + } + else { + /* make z85 happy (size % 4) */ + padded = pcp_padfour(raw, srclen, &outlen); + } /* encode to z85 */ zlen = (outlen * 5 / 4) + 1; @@ -245,7 +253,9 @@ char *pcp_z85_encode(byte *raw, size_t srclen, size_t *dstlen) { *dstlen = blocklen; free(z85); - free(padded); + + if(srclen %4 != 0) + free(padded); return z85block; }